Willkommen › Foren › LogoControl › Logo Uhrzeit automatisch stellen
Verschlagwortet: automatisch, Logo, rtc, stellen, uhrzeit
- Dieses Thema hat 7 Antworten sowie 2 Stimmen und wurde zuletzt vor vor 7 Jahren, 6 Monaten von stpg aktualisiert.
-
AutorBeiträge
-
5. März 2017 um 10:51 #3357stpgTeilnehmer
Hallo liebe Leute,
unermüdlich optimiere ich hier diese tolle middelware.
Nun bin ich aber selbst noch nicht so der bash scripter und habe daher nachfolgende Frage. Die lösung dürfte jeden interessieren, vorallem jene die eine Logo OHNE Display verwenden. Ich möchte Uhrzeit nicht über LogoSoft setzen, da ich die Logos nur mit einen Switch mit den Raspberry verbinde. Keine Verbindung nach außen. Und das programm bekommen die Logos via SD Karte.
Am Raspberry hängt ein Touchscreen. Über diesen kann bereits die Uhrzeit der Logo gestellt werden.<group name="Logo Uhrzeit RTC"> <device id="32a" name="Uhrzeit einstellen" type="RTC"> <attribute id="1" name="Jahr" plc="Waschbox3" address="985" valueTextConverter="byte" /> <attribute id="2" name="Monat" plc="Waschbox3" address="986" valueTextConverter="byte" /> <attribute id="3" name="Tag" plc="Waschbox3" address="987" valueTextConverter="byte" /> <attribute id="4" name="Stunde" plc="Waschbox3" address="988" valueTextConverter="byte" /> <attribute id="5" name="Minute" plc="Waschbox3" address="989" valueTextConverter="byte" /> <attribute id="6" name="Sekunde" plc="Waschbox3" address="990" valueTextConverter="byte" /> </device> </group>
Klick auf ein Attribute öffnet ein Dialogfeld im Browser und hier kann dann entsprechender Wert eingetragen werden. Die VM Zuordnung ist die Standardzuordnung der Logo8 und der Logo8 FS04
Ein Shellscript kann ja theoretisch einen Wert in die Logo schreiben.
/devices/{deviceId}/attributes/{attributeId}/value?set={newValue}
Nehmen wir also das Jahr als Beispiel
/devices/32a/attributes/1/value?set={newValue}{newValue} müsste ich doch jetzt durch das aktuelle Jahr des Raspberrys ersetzen können.
#!/bin/sh # y=<code>date +%Y</code> m=<code>date +%m</code> d=<code>date +%d</code> H=<code>date +%H</code> M=<code>date +%M</code> S=<code>date +%S</code>
„http://logocontrol:8088/rest/devices/32a/attributes/1/value?set=$y“
Und wenn, geht das das hier im bash
wget --spider "http://logocontrol:8088/rest/devices/32a/attributes/1/value?set=$y
Also im als ergebniss:
#!/bin/sh # y=<code>date +%Y</code> m=<code>date +%m</code> d=<code>date +%d</code> H=<code>date +%H</code> M=<code>date +%M</code> S=<code>date +%S</code> wget --spider "http://logocontrol:8088/rest/devices/32a/attributes/1/value?set=$y wget --spider "http://logocontrol:8088/rest/devices/32a/attributes/2/value?set=$m wget --spider "http://logocontrol:8088/rest/devices/32a/attributes/3/value?set=$d wget --spider "http://logocontrol:8088/rest/devices/32a/attributes/4/value?set=$H wget --spider "http://logocontrol:8088/rest/devices/32a/attributes/5/value?set=$M wget --spider "http://logocontrol:8088/rest/devices/32a/attributes/6/value?set=$S
Wie würdet ihr das anstellen?
- Dieses Thema wurde vor vor 7 Jahren, 8 Monaten von stpg bearbeitet.
5. März 2017 um 17:50 #3359stpgTeilnehmerGELÖST:
Also wenn Ihr wollt das sich die Uhrzeit eurer Logo automatisch mit der vom Raspberry synchronisiert, müsst ihr wie folgt vorgehen:Zuerst müsst Ihr entsprechende Atribute anlegen. Diese greifen dann auf die Adressen der RTC (Real Time Clock) der Logo zurück.
Für Jahr ist es die Adresse 985, Monat 986…usw. Diese Adressen sind fest in der Logo, sie müssen nicht angelegt werden und können auch nicht verändert werden.Inhalt in der config.xml
<group name="Logo Uhrzeit RTC"> <device id="1a" name="Uhrzeit einstellen" type="RTC"> <method id="1" name="Uhrzeit synchronisieren" script="rtc.sh" /> <attribute id="1" name="Jahr" plc="myLogo" address="985" valueTextConverter="byte" /> <attribute id="2" name="Monat" plc="myLogo" address="986" valueTextConverter="byte" /> <attribute id="3" name="Tag" plc="myLogo" address="987" valueTextConverter="byte" /> <attribute id="4" name="Stunde" plc="myLogo" address="988" valueTextConverter="byte" /> <attribute id="5" name="Minute" plc="myLogo" address="989" valueTextConverter="byte" /> <attribute id="6" name="Sekunde" plc="myLogo" address="990" valueTextConverter="byte" /> </device> </group>
Als nächstes müsst ihr einen ShellScript in den Ordner „Scripts“ in euren LogoControl Ordner anlegen.
nennt die neue Datei „rtc.sh“cd LogoControl cd Scripts sudo nano rtc.sh
Inhalt von rtc.sh
#!/bin/sh # y=$(date "+%y") m=$(date "+%m") d=$(date "+%d") H=$(date "+%H") M=$(date "+%M") S=$(date "+%S") curl "http://logocontrol:8088/rest/devices/1a/attributes/1/value?set=$y" curl "http://logocontrol:8088/rest/devices/1a/attributes/2/value?set=$m" curl "http://logocontrol:8088/rest/devices/1a/attributes/3/value?set=$d" curl "http://logocontrol:8088/rest/devices/1a/attributes/4/value?set=$H" curl "http://logocontrol:8088/rest/devices/1a/attributes/5/value?set=$M" curl "http://logocontrol:8088/rest/devices/1a/attributes/6/value?set=$S"
Wichtig: Die Scripte müssen (unter Linux) als „Ausführbar“ markiert sein.
Also schnell noch in die Consolecd LogoControl cd Scripts chmod +x rtc.sh
Fertig. Also Neustarten
sudo reboot
Wenn ihr nun in eurer Gruppe „Logo Uhrzeit RTC“ auf „Uhrzeit synchronisieren“ klickt, überschreibt ihr die Uhrzeit in der Logo mit der des Raspberrys.
Optional könnt ihr den Script auch automatisch alle 24h oder so aufführen lassen.
Oder eben in den Autostart vom Raspberry oder in die Startroutine von LogoControl.
Wie das geht verrät euch Google.Hoffe es hilft den ein oder anderen!
31. März 2017 um 22:51 #3389Der ReinholdTeilnehmerHallo stpg,
vielen Dank für Deine Anleitung. Die Synchronisation der Uhrzeit per Hand habe ich Dank Deiner Anleitung hinbekommen. Ich werde das Script noch automatisch einmal am Tag aufrufen. So kann ich meine neuen 8er über den Raspberry mit ntp synchronisieren. Die Logos lassen sich zwar auch direkt per ntp synchronisieren, stellen sich dann aber nicht automatisch auf Sommerzeit um… 🙁
Ein Problem habe ich noch mit der Anzeige in der LogoControl: diese gibt noch keine sinnvollen Werte aus. Würdest Du mir bitte verraten, wie Du den valueTextConverter „byte“ definiert hast. Auch den Device-Typ „RTC“ gibt es bei mir nicht.Also nochmal besten Dank!
DR2. Mai 2017 um 10:04 #3413stpgTeilnehmerHallo, sorry lange ist es her…
ja also der Device-Typ „RTC“ (Real Time Clock) ist nur eine kleine Überschrift um im Code-Wirwa etwas durchblick zu behalten. Du kannst hier entweder „light“ oder „shutter“ verwenden. Bei light nimmt er rot und grün für 0 und 1 (wenn nicht abgeändert) und bei „shutter“ rot gelb grün für 0 1 2 (wenn nicht abgeändert) – bei jeden anderen Typ was du rein schreibst (bei mir eben „RTC“) werden die weißen Punkte angezeigt.Mein valueTextConverter „byte“ ist:
<calculation id="byte"> <!-- zu/von Wert in byte --> <valueToText calculation="{[value]/1}"/> <textToValue valueParseRegex="([\d.,]+)\w*" calculation="{[value1]*1}"/> </calculation>
dachte eigentlich der wäre Standard?!
3. Mai 2017 um 20:17 #3422Der ReinholdTeilnehmerDanke für Deine Hilfe!
Ich hatte mich am langen Wochenende nochmal mit der LogoControl beschäftigt und dabei einfach den valueTextConverter weggelassen – mit dem Ergebnis, dass „vernünftige“ Zahlen erscheinen. Habe jetzt mal eine Logo auf Deinen „byte“ umgestellt, sieht genauso aus.
Bin immer noch begeistert von LogoControl und Dein Script bügelt den o.g. Bug in der Logo8 FS4 im ntp-Client aus. Der Raspi bekommt ja die Zeitumstellung auch mit ntp-Synchronisierung hin, ich lasse ihn dann einfach einmal am Tag die Logozeiten synchronisieren – genial.Viele Grüße
DR5. Mai 2017 um 17:46 #3423stpgTeilnehmerVielen Dank für dein Lob.
Ich nutze die Funktion für Insellösungen ohne Internetanbindung. Hierzu muss man nur das RTC Modul (Real Time Clock) für den RPi kaufen und eine Uhrbatterie und schon bezieht er die aktuelle Zeit über das Funkuhren-Signal.5. Mai 2017 um 20:40 #3424Der ReinholdTeilnehmerÜber ein RTC-Modul zur Synchronisation des Raspi hatte ich auch nachgedacht. Mir ist nur nicht klar, welche Zeit der Raspi dann als ntp-Server ausgibt, seine Uhrzeit oder UTC?
Da war es dann einfacher und vor allem schneller, die Logozeit mittels LogoControl zu stellen.
Mal sehen, irgendwann werde ich es mal ausprobieren. Wir haben nämlich noch zwei LAN-Radios die mit der Zeitumstellung auch nicht klar kommen.6. Mai 2017 um 14:05 #3427stpgTeilnehmerSeine Uhrzeit durch die Zeitzoneneinstellung. Denke ich zumindest. Habe das Modul da, nur immer nicht dran gedacht nach einer passenden Batterie zu schauen xD
-
AutorBeiträge
- Du musst angemeldet sein, um zu diesem Thema eine Antwort verfassen zu können.