Erstellte Forenantworten
-
AutorBeiträge
-
adminAdministrator
Hi,
ich verstehe deine Frage nicht so recht. Welches XML meinst du denn? In LogoControl gibt es nur die config.xml und die ist ja lediglich für die Konfiguration zuständig, da macht es keinen Sinn, das irgendwo einzubinden oder umgekehrt HTML in die Config einzubinden. Ein Live-Bild einer Webcam in die LogoControl Weboberfläche einzubinden ist nicht möglich. Da müsstest du dir schon deine eigene Webseite bauen. In LogoControl gibt es ja den integrierten WebService der alle Informationen/Werte in maschinenlesbarer Form (JSON Format) zur Verfügung stellt. Diesen könntest du z.B. nutzen um die Daten in deine eigene Webseite einzubinden, allerdings solltest du dazu schon fit in HTML/JavaScript und evtl. jQuery sein, da du diese Daten per AJAX-Calls abholen müsstest.
Viele Grüße,
Tobias21. Juli 2015 um 8:44 als Antwort auf: Website http://logocontrol:8088/config.st nicht verfügbar #2277adminAdministratorHi,
das ganze hat erst mal nichts mit LogoControl zu tun, sondern ist ein klassisches Namensauflösungsproblem. Daher gibts dazu auch kein LogFile (welches erst erstellt wird, wenn ein Fehler auftritt). Das Init-Skript hilft hier auch nicht weiter, und dein Pi hat als Hostname ja bereits „logocontrol“ eingetragen, wie ich an deinen Screenshots sehen kann. Hängt der Rechner von welchem du versuchst den Pi zu pingen ebenfalls direkt an der FritzBox, oder was ist da alles an Switches etc. dazwischen. Kannst du andere Geräte im Netz per Namen pingen?
adminAdministratorLeider bisher noch nicht. Solange draußen schönes Wetter ist, widme ich mich gerade verstärkt dem Thema „Gestaltung Außenanlagen“, da gibt es noch einiges zu tun. LogoControl ist halt ein typisches Schlecht-Wetter-Projekt 😉
adminAdministratorHi Sascha,
zuerst mal zu den Speicheradressen: Der Bereich von 0-850 ist in der Logo nicht belegt steht dir also zur freien Verfügung. Immer wenn du von außen ein Signal/Wert in die Logo übertragen möchtest schreibst du in diesen Bereich. Ob du nun 305 oder 150 oder 243… verwendest ist völlig egal, du musst nur den Überblick behalten, dass du die gleiche Adresse nicht für verschiedene Signale nutzt. Der Bereich von 851 bis 1437 ist ein von der Logo reservierter Bereich. Hier stehen alle internen Zustände der Logo (Eingänge, Ausgänge, Merker) bereits drin und du liest von außen nur noch diese Bereiche. Die Adresse 1246.0 vergiss einfach mal. Diese entspricht dem Netzwerkeingang 1 einer Slave-Logo, wenn du einen Master-Slave-Aufbau mit mehreren Logos hast.
Für deinen Fall ziehst du einfach einen Netzwerkeingang ins Programm und weist ihm eine beliebige Adresse im Bereich 0-850 zu, bei dir war es die 300.5, ich nehme im folgenden Beispiel jetzt mal die 150.0. Diesen Netzwerkeingang nutzen wir für das Einschalten der Lampe. Dann ziehst du noch einen weiteren Netzwerkeingang ins Programm und weist ihm die Adresse 150.1 zu. Diesen nutzen wir für das Ausschalt-Signal. In LogoControl legst du nun folgendes Device an:
<device id="1" name="Licht" type="light"> <attribute id="1" name="Status" address="1064.0" datatype="bit"> <valuetext value="0" text="aus" /> <valuetext value="1" text="an" /> </attribute> <method id="1" name="on" address="150.0" /> <method id="2" name="off" address="150.1" /> </device>
Wie du siehst tauchen die Adressen 150.0 und 150.1 in den beiden Methoden zum Ein-/Ausschalten auf. An diese Adresse schreibt LogoControl wenn du die Methoden aufrufst. Nehmen wir an dein Schaltprogramm auf der Logo schaltet nun den Ausgang Q1 abhängig von den Netzwerkeingängen 150.0 und 150.1 an oder aus. Um nun den Zustand von Q1 auch in LogoControl sehen zu können, ist im obigen Beispiel ein Attribut definiert worden. Und hier kommt auch die mysteriöse Tabelle „VM Adressen für Ein-/Ausgänge/Merker der LOGO 0ba8“ ins Spiel. Wie oben bereits geschrieben verwaltet die Logo selbst ihre Zustände im reservierten Speicherbereich von 851-1437. Und an Adresse 1064.0 steht bei der Logo 0ba8 dein Ausgang Q1.
Wenn die IP-Adresse in LogoControl falsch konfiguriert ist, dürfte LogoControl erst gar nicht starten (und somit die Weboberfläche auch nicht erreichbar sein). Ausnahme ist die IP 0.0.0.0, dann läuft LogoControl in einem Demo-Modus.
Viele Grüße,
TobiasadminAdministratorJep, die Tabelle gibt es übrigens auch hier:
Konfiguration (dort den Kasten „VM Adressen für Ein-/Ausgänge/Merker der LOGO 0baX“ aufklappen)Dein Q7 liegt also bei der 0ba7 auf 942.6 und bei der 0ba8 auf 1064.6
adminAdministratorAlso im Logo-Schaltprogramm musst du nichts ändern, solange du den Wert nicht auch im Schaltprogramm verwenden willst. Du musst dir lediglich ein „word“ im Speicher des Logo-VM aussuchen, dass noch nicht verwendet wird. Analogwerte sind in der Logo vom Datentyp „word“, also 2 Bytes lang, wenn du dich somit z.B. für VB100 entscheidest sind sowohl das Byte 100 als auch Byte 101 belegt.
In LogoControl legst du dir dafür ein Device mit einem Attribut an:
<device id="1" name="Temperatur"> <attribute id="1" name="temp" address="100" datatype="word" offset="0" gain="0.1" /> </device>
Zu Beachten ist der Gain von 0.1. Ich gehe jetzt einfach mal davon aus, dass dir eine Nachkommastelle bei der Temperatur reicht. Die Logo kann nur Ganzzahlige Werte, daher muss LogoControl eine Temperatur von 22.4 zuerst in 224 konvertieren bevor es in den VM-Speicher geschrieben wird. Der Gain ist eigentlich für die Visualisierung von (ganzzahligen) Analogwerten aus der Logo gedacht und macht aus der (224 * gain) eben die 22.4. Beim Schreiben von Analogwerten in die Logo rechnet LogoControl aber den umgekehrten Weg, also (22.4 / gain).
Durch einen einfachen HTTP-GET-Aufruf von
http://logocontrol:8088/rest/devices/1/attributes/1/value?set=22.4
schreibst du nun den Wert 22.4 in das oben definierte Attribut und damit auch an Adresse VB100 (und 101, da 2 Bytes lang) der Logo.Wie du den HTTP-GET nun in dein Python-Script einbaust, musst du selber schauen. Ich hatte bisher mit Python nichts zu tun. Hier evtl. ein Ansatzpunkt:
http://stackoverflow.com/questions/645312/what-is-the-quickest-way-to-http-get-in-pythonUm nun die Temperatur auch im Logo-Schaltprogramm nutzen zu können musst du lediglich einen analogen Netzwerkeingang hinzufügen und dort die VM-Adresse 100 einstellen. Anschließend kannst du den Analogwert mit sämtlichen Analogbausteinen (Analogverstärker, Schwellwertschalter usw.) verschalten.
adminAdministratorHi,
du könntest die Temperatur einfach von deinem Script aus über ein LogoControl-Attribut (Datentyp Word) in den VM der Logo schreiben. Dann hättest du das Attribut zum Einen in der Weboberfläche und zum Anderen sogar die Temperatur im Logo-Schaltprogramm zur Verfügung (für was auch immer das gut ist, vielleicht Rollo-Sonnenschutz wenn Außentemperatur um 10 Uhr größer 25°C ?!).
Das Schreiben eines Attribut geht über einen einfachen HTTP-Get:
http://logocontrol:8088/rest/devices/{deviceId}/attributes/{attributeId}/value?set={newValue}Mit Gain+Offset-Einstellung für das Attribut kannst du auch die Konvertierung vom Gleitkommawert in eine Ganzzahl durchführen.
adminAdministratorHi,
hast du die iOS oder Android-Version von NetIO? Hört sich für mich so an als ob das Worker-Label nicht alle 1000ms den HTTP-Get Befehl ausführt. Kannst du das JSON von deiner NetIO-Konfig hier hochladen?
adminAdministratorHi,
unter Linux darf nur der Benutzer „root“ die Ports kleiner 1024 nutzen. Da der LogoControl Prozess aber im normalen Kontext vom Benutzer „pi“ arbeitet, kann er keinen Server auf Port 80 starten. Dass in deinem Fall LogoControl noch nicht mal mehr den HTTPS Dienst auf 8080 startet wenn du nur den HTTP Port auf 80 konfigurierst, liegt vermutlich daran, dass er erst den HTTP-Port versucht zu öffnen, dies aber vom Betriebssystem nicht erlaubt bekommt und mit einem Fehler abbricht. Vielleicht steht dazu ja was im Log unter /tmp/LogoControl.log
Lösung ist entweder LogoControl mit Root-Rechten zu starten oder du richtest dir einfach auf dem Pi eine Portweiterleitung von 80 auf 8088 ein. Für letzteres fügst du in deine /etc/rc.local folgendes ein:
#redirect port 80 to 8088 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8088 iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8088
Wenn du auch 443 auf 8080 umbiegen willst, das ganze dann nochmal analog.
- Diese Antwort wurde vor vor 9 Jahren, 5 Monaten von admin bearbeitet.
adminAdministratorHi,
ich habe zwar nicht die EE-D100 sondern den Vorgänger für das Tab 2, aber zumindest dort lädt das Tablet auch, wenn es hinten anliegt. Die Docking-Station ist ja eigentlich als Tisch-Station gedacht, von daher sollte das Tablet auch laden wenn es ganz normal in der Halterung liegt, also nach hinten angelehnt.
An der Rückseite des Tablets sind bei mir keinerlei Magnete befestigt. Das Tablet wird auch ohne zusätzliche Metallscheiben oder Magnete angezogen, vermutlich weil sich im Inneren etwas metallisches oder magnetisches befindet (ich vermute die Lautsprecher links und rechts). Einfach mal die Ringmagnete über die Tablet-Rückseite schieben und schauen wo sie die meiste Anziehungskraft entwickeln. Diese Position dann für die Bohrung an der Wand übertragen. Die jeweils doppelten Magnete an der Wand steigern zum einen etwas die Haltekraft, sind aber in erster Linie dazu da, den Abstand zur Wand weiter zu kompensieren, da die Dockingstation unten relativ dick ist und bei nur einem Magneten, das Tablet nicht senkrecht an der Wand anliegen würde. Der Stoff scheint ein Filzgleiter zu sein um Kratzer an der Tablet-Rückseite zu vermeiden, bei mich habe ich den nicht. Mit passender versenkter Schraube sollte da auch nichts kratzen…
adminAdministratorHi Toli,
ja klar, wenn du die 4 (USB-)Kontakte des Original-Netzteils auf die Dockingstation gibst brauchst du den Spannungsteiler natürlich nicht. Bei mir stand jedoch nur eine normale UP-Dose zur verfügung, in der für das Orignalnetzteil kein Platz mehr war.
adminAdministratorKlar geht das. Schau dir mal den Kasten „Analogwerte“ auf der Seite Konfiguration an, speziell den Parameter „gain“.
adminAdministratorNein, die in LogoControl integrierte Weboberfläche wird zwar dynamisch generiert ist aber vom Aufbau her fix. Wenn du komplett freies Customizing möchtest (z.B. einen Slider oder andere Controls) müsstest du deine eigene Weboberfläche programmieren. Oder du verwendest die Tablet/Smartphone App „NetIO“, dort gibt es verschiedene Controls (wie z.B. den Slider).
adminAdministratorIndem du ein Attribut definierst (z.B. vom datatype word). Attribute können nicht nur gelesen sondern auch über die Weboberfläche oder den Webservice geschrieben werden.
adminAdministratorAlso in NetIO gibt es zumindest die Möglichkeit mittels CALC-Befehl einfache Berechnungen durchzuführen:
Response HandlingDie Berechnung von Dez in Hex ist allerdings nicht ganz einfach. Hier mal ein Schnellschuss für 4 fixe Stellen (funktioniert nur solange der Hex-Wert mit Zahlen von 0-9 dargestellt werden kann, also ohne A-F):
Diese Formel müsstest du nur noch in exp4j (Android) oder DDMathParser (iOS) umformulieren. Hübsch ist es aber nicht…
Ich überlege aber mal, wie ich diese Funktion direkt in LogoControl integrieren könnte, evtl. eine Art „representation“ Parameter zusätzlich zum „datatype“, bei dem zwischen dec, hex oder bin gewählt werden kann?!
-
AutorBeiträge