WhatsApp Status dummy und Schalter reagieren nicht wie gewollt

Begonnen von ArduPino, 28 Oktober 2016, 12:05:55

Vorheriges Thema - Nächstes Thema

ArduPino

Hallo.

Ich möchte den Status "connected" oder "disconneced" im Tablet UI anzeigen lassen und dies per Button ändern lassen.
Das habe ich:

device WhatsApp
dummy WhatsApp_Status
DOIF ([WhatsApp_Status] eq "on") ({fhem "set  WhatsApp reconnect"}) DOELSE ([WhatsApp_Status] eq "off") ({fhem "set WhatsApp disconnect"}))

Damit kann ich nun schon mal über das Tablet UI WhatsApp an oder aus schalten.

Starte ich FHEM z.B. neu, wird WhatsApp aber online geschaltet. Dies zeigt mir mein dummy aber nicht an.
Auch würde es mir nichts anzeigen, wenn WhatsApp , warum auch immer, offline ist.
Deshalb habe ich nun zwei notify angelegt:

notify no_WhatsApp_on WhatsApp:connected set WhatsApp_Status on
notify no_WhatsApp_off WhatsApp:Disconnected set WhatsApp_Status off

Ist WhatsApp offline und ich schalte es direkt im device an, wird auch mein dummy angeschaltet. Das funktioniert.
Im Readings wird mir angezeigt: state connected 2016-10-28 11:58:36
Schalte ich nun WhatsApp aus, reagiert mein dummy leider nicht.
Das Readings ändert sich aber auch nicht, obwohl STATE Disconnected da steht, bleiben im Readings die alten Werte. Damit kann das notify so gar nicht reagieren.

Mache ich was falsch oder ist das ein Problem vom WhatsApp device ???

EDIT:
Das DOIF hat eine Fehlermeldung genneriert.
di_WhatsApp: off eq "off": Unknown command off, try help.
Ist das so falsch gewesen ? Hatte das DOELSE so gemacht, damit auch der off Status eindeutig ist.
Nun habe ich es wieder verändert :

([WhatsApp_Status] eq "on") ({fhem "set WhatsApp reconnect"}) DOELSE ({fhem "set WhatsApp disconnect"}))

Würde mich freuen, wenn mir jemand kurz schreiben könnte, was in dem anderen DOIF falsch ist.
Das andere Problem bleibt aber.

EDIT:

([WhatsApp_Status] eq "on") ({fhem "set WhatsApp reconnect"}) DOELSEIF ([WhatsApp_Status] eq "off") ({fhem "set WhatsApp disconnect"})

So ist es richtig...
Werde mal versuchen ob ein weiteres DOIF auf das state von WhatsApp reagiert...mal sehen was passiert und ob sich die beiden dann nicht in die Quere kommen.

Damian

Zitat von: ArduPino am 28 Oktober 2016, 12:05:55
Hallo.

Ich möchte den Status "connected" oder "disconneced" im Tablet UI anzeigen lassen und dies per Button ändern lassen.
Das habe ich:

device WhatsApp
dummy WhatsApp_Status
DOIF ([WhatsApp_Status] eq "on") ({fhem "set  WhatsApp reconnect"}) DOELSE ([WhatsApp_Status] eq "off") ({fhem "set WhatsApp disconnect"}))

Damit kann ich nun schon mal über das Tablet UI WhatsApp an oder aus schalten.

Starte ich FHEM z.B. neu, wird WhatsApp aber online geschaltet. Dies zeigt mir mein dummy aber nicht an.
Auch würde es mir nichts anzeigen, wenn WhatsApp , warum auch immer, offline ist.
Deshalb habe ich nun zwei notify angelegt:

notify no_WhatsApp_on WhatsApp:connected set WhatsApp_Status on
notify no_WhatsApp_off WhatsApp:Disconnected set WhatsApp_Status off

Ist WhatsApp offline und ich schalte es direkt im device an, wird auch mein dummy angeschaltet. Das funktioniert.
Im Readings wird mir angezeigt: state connected 2016-10-28 11:58:36
Schalte ich nun WhatsApp aus, reagiert mein dummy leider nicht.
Das Readings ändert sich aber auch nicht, obwohl STATE Disconnected da steht, bleiben im Readings die alten Werte. Damit kann das notify so gar nicht reagieren.

Mache ich was falsch oder ist das ein Problem vom WhatsApp device ???

EDIT:
Das DOIF hat eine Fehlermeldung genneriert.
di_WhatsApp: off eq "off": Unknown command off, try help.
Ist das so falsch gewesen ? Hatte das DOELSE so gemacht, damit auch der off Status eindeutig ist.
Nun habe ich es wieder verändert :

([WhatsApp_Status] eq "on") ({fhem "set WhatsApp reconnect"}) DOELSE ({fhem "set WhatsApp disconnect"}))

Würde mich freuen, wenn mir jemand kurz schreiben könnte, was in dem anderen DOIF falsch ist.
Das andere Problem bleibt aber.

EDIT:

([WhatsApp_Status] eq "on") ({fhem "set WhatsApp reconnect"}) DOELSEIF ([WhatsApp_Status] eq "off") ({fhem "set WhatsApp disconnect"})

So ist es richtig...
Werde mal versuchen ob ein weiteres DOIF auf das state von WhatsApp reagiert...mal sehen was passiert und ob sich die beiden dann nicht in die Quere kommen.

DOIF wurde in erster Linie programmiert, um nicht auf die Perl-Ebene gehen zu müssen. Es ist kürzer und damit weniger fehlerträchtig, wenn du auf der FHEM-Ebene bleibst:

([WhatsApp_Status] eq "on") (set WhatsApp reconnect) DOELSEIF ([WhatsApp_Status] eq "off") (set WhatsApp disconnect)


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ArduPino

#2
Zitat von: Damian am 28 Oktober 2016, 19:16:04

([WhatsApp_Status] eq "on") (set WhatsApp reconnect) DOELSEIF ([WhatsApp_Status] eq "off") (set WhatsApp disconnect)


Gruß

Damian

Ach, jetzt wo ich das sehe, frage ich mich warum ich das überhaupt so gemacht habe  :o
Auch wenn das andere jetzt nicht so schön war, hat es erst mal funktioniert. Habe das aber von dir so übernommen.

Wie kann man denn das andere Problem lösen, also sagen wir mal, WhatsApp wird beendet, warum auch immer, Internetverbindung offline oder was weiß ich.
Dann funktioniert mein notify aber nicht, weil beim disconnect das Readings nicht gesetzt wird. Bei state steht zwar disconnect und im Event Manager wird auch disconnect angezeigt, aber das notify reagiert so nicht.

EDIT:
Jetzt !
Im Event Manager sieht das dann doch anders aus als im device direkt.
Dort stand:

2016-10-28 23:54:01 yowsup WhatsApp disconnect

State wurde aber immer Disconnected angezeigt ! Das Readings ändert sich zwar nicht, aber imEvent Manager sieht man es. Notify auf disconnect geändert und schon läuft es !
Nur offline muss ich noch einbauen, irgendwie. Hab eben was gelesen mit einem Filter beim notify, denn offline erscheint auch kurz beim reconnect.
Schalte ich also ein, kommt kurz "offline" und es wird wieder aus geschaltet...aber denke mal das kriege ich hin.

EDIT:
Schade, doch nicht.
Habe die Internetverbindung mal getrennt.
Entweder das dauert recht lange bis WhatsApp merkt das gar keine Internetverbindung besteht, oder es wird überhaupt nicht bemerkt. Kann ich nicht genau sagen.
Trenne ich die Internetverbindung, und lasse WhatsApp dann einen reconnect durchführen, erscheint offline bei state.

Nun habe ich ein weiteres notify angelegt mit dem DEF:
WhatsApp:offline set WhatsApp_Status FILTER=state!=off off

Das habe ich hier im Forum gefunden, um zu verhindern das ein device sich selber wieder an oder aus schaltet.
Funktioniert so aber nicht. Mein Status dummy zeigt mir nun
STATE   FILTER=state!=off off

Ich mache das jetzt einfach mal so, das ich den Status vom WhatsApp device mit im Tablet UI anzeigen lasse.
So zeigt mir zwar mein Icon eventuell online an und unten drunter steht dann "offline" oder "disconnected" aber dann ist das jetzt mal so.  :-\