Hallo,
ich habe einen Neato ("NeatoD5")Staubsauger, der durch einen einfachen dummy-Schalter ("Ursl") gesteuert werden soll. Schalter an = Sauger fährt los. Schalter aus = Sauger fährt zurück an die Ladestation.
Das Starten klappt mit notify schon super. Wenn der Sauger hingegen mit der Reinigung fertig ist, so fährt er eigenständig zur Basis. Hierauf habe ich einen weiteren Trigger gesetzt. Dieser soll das Reading stateId überwachen--und bei Änderung auf stateId="1" den dummy-Schalter wieder auf off setzen. Aus welchem Grund auch immer passiert das aber nicht...
define Ursl dummy
attr Ursl devStateIcon on:scene_cleaning off:scene_cubby
attr Ursl event-on-change-reading .*
attr Ursl group Service
attr Ursl room Küche
attr Ursl setList on off
attr Ursl webCmd :
define NeatoD5 BOTVAC aaa@bbb.de passwd neato 200
attr NeatoD5 event-on-change-reading .*
attr NeatoD5 room Küche
attr NeatoD5 webCmd startCleaning:stop:sendToBase
define FileLog_NeatoD5 FileLog ./log/neatod5.log NeatoD5.*
attr FileLog_NeatoD5 logtype text
define UrslOnNeatoTrigger notify Ursl:on set NeatoD5 startCleaning
define UrslOffNeatoTrigger notify Ursl:off set NeatoD5 pauseToBase
define NeatoUrslOffTrigger notify NeatoD5:stateId:1 set Ursl off
Das Reading "stateId" habe ich über die Oberfläche beobachtet. Das springt wieder auf "1" um, aber der Schalter "Ursl" bleibt auf "on". Wie kann ich das weiter untersuchen ? Oder seht ihr ein Problem im Code ?
Vielen Dank, Jolanda
Notify (und DOIF) geht am einfachsten so:
Eventmonitor öffnen (gegebenenfalls Filter setzen), auf den richtigen Event warten und dann die Zeile markieren und dann "create/modify"...
https://wiki.fhem.de/wiki/Event_monitor
Vermutlich könnte das hier funktionieren:
define NeatoUrslOffTrigger notify NeatoD5:stateId.1 set Ursl off
Aber ohne den Event zu kennen nur Rätselraten... ;)
Gruß, Joachim
Alternativ einfach mal ins Logilfe gucken ...und wenn nicht verständlich, bitte die Zeile aus dem Logfile posten.
define NeatoUrslOffTrigger notify NeatoD5:stateId:.1 set Ursl off
Beim nächsten mal bitte ein list vom Device. Das hier war noch einfach aber es hilft mehr wenn helfende ein list haben.
Zitat von: Wernieman am 03 Dezember 2018, 16:35:02
Alternativ einfach mal ins Logilfe gucken ...und wenn nicht verständlich, bitte die Zeile aus dem Logfile posten.
Das device NeatoD5 schreib ja in seinen eigenen Logfile. Hier ein Auszug, als die Reinigung startet. "stateId wird von 1 auf 2 gesetzt:
2018-12-03_11:03:59 NeatoD5 batteryPercent: 100
2018-12-03_11:10:39 NeatoD5 batteryPercent: 99
2018-12-03_11:10:58 NeatoD5 startCleaning
2018-12-03_11:10:59 NeatoD5 dockHasBeenSeen: true
2018-12-03_11:10:59 NeatoD5 stateId: 2
2018-12-03_11:10:59 NeatoD5 action: 1
2018-12-03_11:10:59 NeatoD5 House Cleaning
2018-12-03_11:13:58 NeatoD5 isDocked: false
2018-12-03_11:13:58 NeatoD5 batteryPercent: 98
2018-12-03_11:17:19 NeatoD5 batteryPercent: 95
Nun ist der Reinigungsprozess beendet und der Roboter fährt eigenständig zur Basis zurück. "stateId" wird von 2 wieder auf 1 gesetzt:
2018-12-03_11:53:59 NeatoD5 batteryPercent: 70
2018-12-03_11:57:19 NeatoD5 batteryPercent: 67
2018-12-03_12:00:39 NeatoD5 isCharging: true
2018-12-03_12:00:39 NeatoD5 isDocked: true
2018-12-03_12:00:39 NeatoD5 dockHasBeenSeen: false
2018-12-03_12:00:39 NeatoD5 stateId: 1
2018-12-03_12:00:39 NeatoD5 action: 0
2018-12-03_12:00:39 NeatoD5 Idle
2018-12-03_12:00:41 NeatoD5 map_id: 2018-12-03T10:11:06Z
2018-12-03_12:00:41 NeatoD5 map_date: 2018-12-03 12:00:14
2018-12-03_12:00:41 NeatoD5 map_area: 37.8672
2018-12-03_12:03:59 NeatoD5 batteryPercent: 70
2018-12-03_12:07:19 NeatoD5 batteryPercent: 73
2018-12-03_12:10:39 NeatoD5 batteryPercent: 75
Müsste das nich eigentlich meinen Trigger auslösen ?
Ich habe dir doch schon die Lösung hingeschrieben. Hat es damit nicht geklappt?
Vielen Dank für die Hilfe ! Jetzt klappt alles.