Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
public:fhem_culresetter [2018/10/25 06:59]
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 45: Zeile 49:
 attr GPIO_18 room Watchdog attr GPIO_18 room Watchdog
 attr GPIO_18 setList on off attr GPIO_18 setList on off
 +attr GPIO_18 icon RPi
 </​code> ​ </​code> ​
  
Zeile 53: Zeile 58:
 define GPIO_18_on notify GPIO_18:on {system("/​usr/​bin/​gpio export 18 out && /​usr/​bin/​gpio -g write 18 1")} define GPIO_18_on notify GPIO_18:on {system("/​usr/​bin/​gpio export 18 out && /​usr/​bin/​gpio -g write 18 1")}
 attr GPIO_18_on room Watchdog attr GPIO_18_on room Watchdog
 +attr GPIO_18_on icon audio_shuffle
 </​code>​ </​code>​
  
Zeile 59: Zeile 65:
 define GPIO_18_off notify GPIO_18:off {system("/​usr/​bin/​gpio export 18 out && /​usr/​bin/​gpio -g write 18 0")} define GPIO_18_off notify GPIO_18:off {system("/​usr/​bin/​gpio export 18 out && /​usr/​bin/​gpio -g write 18 0")}
 attr GPIO_18_off room Watchdog attr GPIO_18_off room Watchdog
 +attr GPIO_18_off icon audio_shuffle
 </​code>​ </​code>​
  
Zeile 64: 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 73: 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");;\
- system("​sleep 3");;\+ sleep 3;;\
  system("/​usr/​bin/​gpio -g write 18 1");;\  system("/​usr/​bin/​gpio -g write 18 1");;\
  fhem("​defmod nanoCUL CUL $culpath"​);;​\  fhem("​defmod nanoCUL CUL $culpath"​);;​\
Zeile 90: Zeile 97:
 attr nanoCULWatchdog wait 60 attr nanoCULWatchdog wait 60
 attr nanoCULWatchdog room Watchdog attr nanoCULWatchdog room Watchdog
 +attr Watchdog_nanoCUL icon control_reboot
 </​code>​ </​code>​
  
Zeile 97: 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}}

Navigation
Eigene Werkzeuge