FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: WarLord am 10 Juni 2015, 17:42:22

Titel: (gelöst) notify verfängt sich in schleife
Beitrag von: WarLord am 10 Juni 2015, 17:42:22
Hi ich hab da ein kleines Problem.
Ich hab nen Raspberry mit TFT im Schlafzimmer, denn ich über Fhem schalte.
Nachdem einfach "Strom weg" nicht das beste ist, fahre ich ihn über ssh erst runter und nehme dann den Strom weg (Mit dummy gelöst). Soweit geht alles.

Da ich auch noch einen Hardwareschalter zum einschalten wollte, soll der Hardwareschalter denn Dummy einschalten.
Wenn ich aber nun über den Dummy ausschalte, hängt er in ner schleife und fährt hoch und runter.
Was durch den sleep irgendwie klar ist. Problem ist also TVon1. Nur wüsste ich nicht wie ich es besser lösen könnte.

define RaspTV dummy
attr RaspTV devStateIcon on:tft off:tft_n
attr RaspTV fp_A 560,303,0,,
attr RaspTV room Schlafzimmer
attr RaspTV setList on off

define TVon notify RaspTV:on set SchalterTVSchlafzimmer on
define TVon1 notify SchalterTVSchlafzimmer:on set RaspTV on

define TVoff notify RaspTV:off "/usr/bin/ssh xx@@xxx.xxx.x.xx poweroff";; sleep 20;; set SchalterTVSchlafzimmer off
define TVoff2 at *01:00:00 set RaspTV off


Hat da einer ne Idee wie man das Problem lösen könnte?

Schonmal Danke für die Ideen!
Titel: Antw:notify verfängt sich in schleife
Beitrag von: Hollo am 11 Juni 2015, 09:08:47
Dein Code ist mir irgendwie unverständlich, da vermutlich unvollständig.
Wenn RaspTV gleichzeitig zum Ein-/Ausschalten per fhem sein soll,
kannst Du den nicht gleichzeitig mit Ausschalten nochmal verzögert ausschalten.

Der Schlafzimmer-Schalter soll also nur EINschalten?
Dann konfigurier den doch als Taster (im Zweifel mit eventMap /on-for-timer 2:on/ ).
Dann mittels notify durch Fhem oder Taster den TV einschalten.

define TVon notify (fhemTV:on|SchalterTVSchlafzimmer:on) set RaspTV on


Machst Du über fhem wieder aus, geht auch der TV aus.

define TVoff notify fhemTV:off "/usr/bin/ssh xx@@xxx.xxx.x.xx poweroff";; sleep 20;; set RaspTV off


Wofür soll denn Dein "stündlich ausschalten at" sein?
Titel: Antw:notify verfängt sich in schleife
Beitrag von: Paddinho am 11 Juni 2015, 09:36:28

define TVon notify RaspTV:on set SchalterTVSchlafzimmer on
define TVon1 notify SchalterTVSchlafzimmer:on set RaspTV on


Bin leider auch noch FHEM-Einsteiger aber ich könnte mir vorstellen diese beiden Zeilen auch zu einer Endlosschleife führen könnten.
Durch Notify's wird ja auf Events reagiert und durch Notify "TVon" SET ... ON wird Notify "TVon1" ausgeführt und umgekehrt
Titel: Antw:notify verfängt sich in schleife
Beitrag von: WarLord am 11 Juni 2015, 09:39:17
Hi

unvollständing nur soweit das die Konfiguration des HM Schalter (SchalterTVSchlafzimmer er ist ein HomeMatic Funk-Schaltaktor 1fach, Unterputzmontage) fehlt.

gedacht ist es so:

Im Floorplan ein Icon zum an und aus schalten.
Da ich denn Strom nicht einfach wegnehmen will, hab ich dafür den Dummy (RaspTV) definiert. Wegen ssh und so.

Am Schaltaktor (SchalterTVSchlafzimmer) ist aber auch ein Taster angeschlossen. Der beim betätigen den Schaltaktor natürlich aktiviert und den Dummy auf on schalten soll, um auf dem Floorplan alles wieder aus zu schalten.
Am Schaltaktor hängen der TFT und der Raspberry.

Das "at" ist dazu da um den Raspberry spätestens um 1 uhr auszuschalten, falls man schon eingeschlafen ist


@Paddinho:  Genau da ist das Problem, nur weis ich noch nicht wie ich dieses lösen kann ohne ne schleife zu erzeugen
Titel: Antw:notify verfängt sich in schleife
Beitrag von: Hollo am 11 Juni 2015, 17:44:42
Zitat von: WarLord am 11 Juni 2015, 09:39:17
...unvollständing nur soweit das die Konfiguration des HM Schalter (SchalterTVSchlafzimmer er ist ein HomeMatic Funk-Schaltaktor 1fach, Unterputzmontage) fehlt...
Genau DAS ist aber die wichtigste Information!   ;D

Du hast im Prinzip nur genau 1 Gerät.
Bei einem HM-Schaltaktor hast Du nach der Konfiguration direkt die on/off Tasten im Webfrontend.
Der angeschlossene Taster wirkt ebenfalls DIREKT auf den Aktor; daher kannst Du dazwischen m.E. auch keine Verzögerung einbauen.
Titel: Antw:notify verfängt sich in schleife
Beitrag von: WarLord am 11 Juni 2015, 18:28:10
Oh, ok dann hier der Komplette code:
define SchalterTVSchlafzimmer CUL_HM 368E35
attr SchalterTVSchlafzimmer userattr building building_map room_map structexclude
attr SchalterTVSchlafzimmer IODev HMLAN1
attr SchalterTVSchlafzimmer autoReadReg 1_restart
attr SchalterTVSchlafzimmer devStateIcon on:tft off:tft_n
attr SchalterTVSchlafzimmer expert 2_full
attr SchalterTVSchlafzimmer firmware 2.5
attr SchalterTVSchlafzimmer model HM-LC-SW1-FM
attr SchalterTVSchlafzimmer peerIDs 00000000,
attr SchalterTVSchlafzimmer room _System
attr SchalterTVSchlafzimmer serialNr MEQ0071468
attr SchalterTVSchlafzimmer subType switch
attr SchalterTVSchlafzimmer webCmd statusRequest:toggle:on:off
#
define RaspTV dummy
attr RaspTV devStateIcon on:tft off:tft_n
attr RaspTV fp_A 560,303,0,,
attr RaspTV room Schlafzimmer
attr RaspTV setList on off
#
define TVon notify RaspTV:on set SchalterTVSchlafzimmer on
define TVon1 notify SchalterTVSchlafzimmer:on set RaspTV on
define TVoff notify RaspTV:off "/usr/bin/ssh xxxx@@xxx.xxx.x.xx poweroff";; sleep 20;; set SchalterTVSchlafzimmer off
define TVoff2 at *01:00:00 set RaspTV off



Zitat von: Hollo am 11 Juni 2015, 17:44:42
Genau DAS ist aber die wichtigste Information!   ;D

Du hast im Prinzip nur genau 1 Gerät.
Bei einem HM-Schaltaktor hast Du nach der Konfiguration direkt die on/off Tasten im Webfrontend.
Der angeschlossene Taster wirkt ebenfalls DIREKT auf den Aktor; daher kannst Du dazwischen m.E. auch keine Verzögerung einbauen.

Das heist nun?
Titel: Antw:notify verfängt sich in schleife
Beitrag von: Paddinho am 11 Juni 2015, 22:45:00
Ich versuch dein Problem mal zu beschreiben.

Die hast einen HM-Taster mit dem du deinen Raspi ein- oder auschalten willst.
Zudem willst du aber auch über einen "dummy"-Schalter den Raspi im Floorplan ein- und ausschalten.

Wenn du den den HM-Taster zum Auschalten betätigst willst du mit dem notify bezwecken das auch der dummy-Schalter den Status off erhält (und natürlich umgekehrt).
Ist das richtig so?

Ich würde sagen warum dann nicht ganz auf dummy verzichten und direkt den HM-Taster im Floorplan anzeigen?
Titel: Antw:notify verfängt sich in schleife
Beitrag von: WarLord am 12 Juni 2015, 07:29:55
Nicht ganz.

einschalten will ich über dummy oder HM-Taster

ausschalten nur über Dummy, aber um über dummy ausschalten zu können muss dieser auch auf "on" sein wenn der HM-Taster betätigt wurde.

Auf den Dummy kann ich nicht verzichten wegen dem herunterfahren des Raspberry.
Titel: Antw:notify verfängt sich in schleife
Beitrag von: Paddinho am 12 Juni 2015, 08:59:05
Versuch mal mit "setstate" zu arbeiten. Das sollte den Status des anderes Schalters umsetzen, aber keine Ereignis mehr auslösen (was bei dir ja durch die notify's in Endlosschleife endet)

Versuch mal sowas in der Art (ohne Gewähr)

define State_SchalterTVSchlafzimmer notify RaspTV:.* {fhem "setstate SchalterTVSchlafzimmer $EVENT"}

define State_RaspTV  notify SchalterTVSchlafzimmer:.* {fhem "setstate RaspTV $EVENT"}
Titel: Antw:notify verfängt sich in schleife
Beitrag von: Hollo am 12 Juni 2015, 09:15:13
Wenn Du mit dem Taster des Aktors NUR EINSCHALTEN willst, sollte das gehen.
Dazu musst Du nur meinen ersten Code etwas anpassen.

mittels notify durch Dummy oder Taster den TV-Aktor und den Dummy einschalten.

define TVon notify (RaspTV:on|SchalterTVSchlafzimmer:on) set SchalterTVSchlafzimmer,RaspTV on


Machst Du über fhem wieder aus, geht auch der TV aus.

define TVoff notify RaspTV:off "/usr/bin/ssh xx@@xxx.xxx.x.xx poweroff";; sleep 20;; set SchalterTVSchlafzimmer off

Titel: Antw:notify verfängt sich in schleife
Beitrag von: Paddinho am 12 Juni 2015, 09:28:18
Zitat von: Hollo am 12 Juni 2015, 09:15:13
define TVon notify (RaspTV:on|SchalterTVSchlafzimmer:on) set SchalterTVSchlafzimmer,RaspTV on

Sorry für meine Frage (bin selbst FHEM-Anfänger) aber würde dies nicht auch wieder zu einer Endlosschleife führen?

Durch das Ausführen des Notify (RaspTV oder SchalterTVSchlafzimmer -> ON) führt FHEM doch den SET-Befehl aus in dem ja wieder der Status des gleichen Device auf ON gesetzt wird.
Somit müsste normalerweise doch wieder das gleiche Ereignis ausgelöst werden usw...
Oder wird sowas durch FHEM abgefangen?
Titel: Antw:notify verfängt sich in schleife
Beitrag von: Hollo am 12 Juni 2015, 10:11:36
Die Befürchtung habe ich auch, muss man halt mal probieren und dann im Eventmonitor beobachten.
Wäre sonst aber die einfachste Variante.
Titel: Antw:notify verfängt sich in schleife
Beitrag von: WarLord am 12 Juni 2015, 13:56:23
define TVon notify (RaspTV:on|SchalterTVSchlafzimmer:on) set SchalterTVSchlafzimmer,RaspTV on

damit funktionierts! Keine schleife mehr. Besten Dank!
Titel: Antw:notify verfängt sich in schleife
Beitrag von: Hollo am 13 Juni 2015, 11:39:11
Super.   8)
Danke für die Rückmeldung; evtl. bitte noch den Thread auf "gelöst" setzen.