Zuletzt angesehen:
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
public:fhem_culresetter [2018/10/27 15:36] admin [FHEM Konfiguration] |
public:fhem_culresetter [2019/08/07 16:30] (aktuell) |
||
---|---|---|---|
Zeile 5: | Zeile 5: | ||
Der **CUL-Resetter** setzt genau hier ein und verschafft Abhilfe. Er resettet den nanoCUL, damit dieser wieder wie gewohnt funktioniert. \\ | Der **CUL-Resetter** setzt genau hier ein und verschafft Abhilfe. Er resettet den nanoCUL, damit dieser wieder wie gewohnt funktioniert. \\ | ||
Über ein **DOIF** wird der CUL-Resetter nur dann ausgelöst, wenn der nanoCUL über 60 Sekunden im Zustand **opened** verweilt. Er resettet den nanoCUL und initialisiert ihn wieder.\\ | Über ein **DOIF** wird der CUL-Resetter nur dann ausgelöst, wenn der nanoCUL über 60 Sekunden im Zustand **opened** verweilt. Er resettet den nanoCUL und initialisiert ihn wieder.\\ | ||
- | Leider ist dies softwaretechnisch nicht möglich. Aber diese kleine Hardware wird einfach an den Raspberry Pi angeschlossen und hilft uns einen Woraround anzuwenden. \\ | + | Leider ist dies softwaretechnisch nicht möglich. Aber diese kleine Hardware wird einfach an den Raspberry Pi angeschlossen und hilft uns einen Workaround anzuwenden. \\ |
\\ | \\ | ||
Nachfolgend die erforderliche Installation- und Konfiguration-Anleitung. \\ | Nachfolgend die erforderliche Installation- und Konfiguration-Anleitung. \\ | ||
Zeile 12: | Zeile 12: | ||
==== Hardware Installation ==== | ==== Hardware Installation ==== | ||
- | Der CUL-Resetter hat 3 Stck Dupont Kabel, welche an die GPIO-Schnittstelle des Raspberry Pi aufgesteckt werden. \\ | + | Der CUL-Resetter hat 3 Stck beschriftete Dupont Kabel, welche an die GPIO-Schnittstelle des Raspberry Pi aufgesteckt werden. \\ |
- | Dazu wählt man die Anschlüsse **5V, GND** und einen der GPIO-Pins. Hier im Beispiel wird **GPIO-18** verwendet.\\ | + | {{:public:cul-resetter2.jpg?300|}} |
+ | |||
+ | Dazu wählt man die Anschlüsse **5V, GND** und einen der **GPIO**-Pins. Hier im Beispiel wird **GPIO-18** verwendet.\\ | ||
\\ | \\ | ||
{{:public:cul-resetter-1.jpg?800|}} | {{:public:cul-resetter-1.jpg?800|}} | ||
| | ||
+ | Anschließend wird der USB-Adapter in einen der USB-Ports am Raspberry eingesteckt und der nanoCUL auf den Adapter. \\ | ||
+ | Auch wenn der Raspberry bereits gestartet ist, wird der nanoCUL noch nicht mit Strom versorgt und zeigt **disconnected**. Dies ändert sich nach der nachfolgenden Konfiguration in FHEM.\\ | ||
+ | {{:public:cul-resetter7.jpg?500|}} | ||
\\ | \\ | ||
\\ | \\ | ||
Zeile 67: | Zeile 71: | ||
\\ | \\ | ||
- | Anschließend konfigurieren wir einen Watchdog für den automatischen Reset des nanoCUL.\\ | + | === Automatismus === |
- | Die Funktion ist folgende: Wechselt der nanoCUL für mehr als 60 Sekunden auf **openend**, dann wird der Strom des nanoCUL weggenommen und wieder zugeführt. Dies simuliert ein händisches aus/einstecken und der nanoCUL geht wieder auf **initialized**. \\ | + | Jetzt konfigurieren wir einen Watchdog für den automatischen Reset des nanoCUL.\\ |
- | Der Pfad zum nanoCUL (/dev/serial/by.id/...) muss natürlich angepasst werden. Evtl. auch **pushmsg** anpassen/entfernen wenn nicht vorhanden. \\ | + | Die Funktion ist folgende: Wechselt der nanoCUL für mehr als 60 Sekunden auf **openend**, wird der Strom des nanoCUL weggenommen und wieder zugeführt. Dies simuliert ein händisches aus/einstecken und der nanoCUL geht wieder auf **initialized**. \\ |
+ | Die Zeile mit der **pushmsg** muss man anpassen oder entfernen wenn der Service nicht vorhanden ist, also nicht benutzt wird. \\ | ||
<code> | <code> | ||
Zeile 76: | Zeile 81: | ||
{\ | {\ | ||
my $culpath = InternalVal('nanoCUL','DEF','');;\ | my $culpath = InternalVal('nanoCUL','DEF','');;\ | ||
- | $culpath=~s/@/\\@/;; \\ | + | fhem("defmod nanoCUL CUL /dev/serial/by-id/none\@38400 0000");;\ |
- | fhem("defmod nanoCUL CUL /dev/serial/by-id/none\@38400 0000");;\ | + | |
system("/usr/bin/gpio export 18 out");;\ | system("/usr/bin/gpio export 18 out");;\ | ||
system("/usr/bin/gpio -g write 18 0");;\ | system("/usr/bin/gpio -g write 18 0");;\ | ||
Zeile 101: | Zeile 105: | ||
attr nanoCUL event-on-update-reading state | attr nanoCUL event-on-update-reading state | ||
</code> | </code> | ||
+ | |||
+ | Falls das o.g. DOIF nicht funktioniert, hier eine Alternative, welche die Zeit des letzten Datenempfangs beurteilt. | ||
+ | <code> | ||
+ | define nanoCULWatchdog DOIF ( time() - time_str2num(ReadingsTimestamp("nanoCUL","state","0")) > 15 ) (set pushmsg msg 'fhem' 'nanoCUL hat mehr als 15 min kein Update erhalten - Bitte prüfen!') | ||
+ | </code> | ||
+ | |||
+ | |||
+ | {{:public:cul-resetter-fhem.jpg?600}} |