Über ein Notify möchte ich ein set-Kommando für mein MQTT2_DEVICE absetzen, wenn sich in diesem das Reading "tst" ändert. Das MQTT2-Device löst das Event für das Reading "tst" aus (Event-Monitor) und ich kann auch im Log sehen, dass der IF-Zweig des Notifys mit "fhem("set $NAME signifikant")" reagiert. Allerdings hat das "set" bei dem MQTT2-Device keine Auswirkung. Auch wenn ich $NAME mit dem konkreten Device "MQTT2_owntracks_mobil" ersetze, passiert nichts.
Führe ich folgende Kommandos (FHEMWEB) direkt über die FHEM Web UI aus, ändert sich der Modus (signifikant) des MQTT2-Devices sofort.
- {fhem("set MQTT2_owntracks_mobil signifikant")}
- set MQTT2_owntracks_mobil signifikant
Mein Versuch mit einem DOIF hat auch nichts gebracht und es verhält sich wie das Notify. Ich habe hier keine Idee mehr, was ich noch prüfen könnte. Hat jemand Tipps? Vielen Dank!
List vom Notify
Internals:
DEF MQTT2_owntracks_.*:tst.* {
Log 1, "Das Device $NAME hat ausgeloest, der Event sah so aus: $EVENT";
if ( Value("presence.phone.user") eq "absent" and ReadingsVal("$NAME","m",0) != 2) {
##fhem("set $NAME signifikant");
fhem("set $NAME signifikant");
}
if ( Value("presence.phone.user") eq "present" ) {
fhem("set $NAME manual");
}
}
FUUID 658574c9-f33f-8b20-1f24-b0f815701c15c7d6
NAME testNotify
NOTIFYDEV MQTT2_owntracks_.*
NR 997
NTFY_ORDER 50-testNotify
REGEXP MQTT2_owntracks_.*:tst.*
STATE 2023-12-22 13:56:31
TRIGGERTIME 1703249791.97355
TYPE notify
eventCount 16
READINGS:
2023-12-22 13:48:30 state active
2023-12-22 13:56:31 triggeredByDev MQTT2_owntracks_mobil
2023-12-22 13:56:31 triggeredByEvent tst: 1703249383
Attributes:
List vom MQTT2_DEVICE
Internals:
CID owntracks_mobil
DEF owntracks_mobil
FUUID 647ee545-f33f-8b20-70f8-a09071b8941244f0
IODev MQTTClient
LASTInputDev MQTTClient
MQTTClient_MSGCNT 114
MQTTClient_TIME 2023-12-22 14:00:59
MSGCNT 114
NAME MQTT2_owntracks_mobil
NR 210
STATE absent
TYPE MQTT2_DEVICE
eventCount 116
READINGS:
2023-12-22 11:15:39 IODev MQTTClient
2023-12-22 14:00:59 _type cmd
2023-12-22 13:56:32 acc 40
2023-12-22 14:00:59 action setConfiguration
2023-06-28 17:29:01 associatedWith MQTTClient_Bridge
2023-12-22 13:56:32 batt 100
2023-12-22 13:56:32 bs 3
2023-12-22 14:00:59 configuration__type configuration
2023-12-22 14:00:59 configuration_monitoring 1
2023-12-22 13:56:32 conn m
2023-12-22 13:56:32 created_at 1703249791
2023-12-22 11:49:48 desc Home
2023-12-22 11:49:48 event enter
2023-12-22 13:56:32 inregions_1 Home
2023-09-29 11:54:03 name user
2023-06-27 10:17:41 rad 300
2023-12-22 14:00:59 state signifikant
2023-12-22 14:00:59 tst 1703249757
2023-12-22 11:30:17 wlanPresence absent
Attributes:
alias User Telefon
event-on-change-reading (?!face).*
readingList owntracks/user/mobil:.* { json2nameValue($EVENT) }
owntracks/user/mobil/waypoints:.* { json2nameValue($EVENT) }
owntracks/user/mobil/event:.* { json2nameValue($EVENT) }
owntracks/user/mobil/cmd:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
setList report owntracks/user/mobil/cmd {"_type":"cmd","action":"reportLocation"}
move owntracks/user/mobil/cmd {"_type":"cmd","action":"setConfiguration","configuration":{"_type":"configuration","monitoring":2}}
signifikant owntracks/user/mobil/cmd {"_type":"cmd","action":"setConfiguration","configuration":{"_type":"configuration","monitoring":1}}
silent owntracks/user/mobil/cmd {"_type":"cmd","action":"setConfiguration","configuration":{"_type":"configuration","monitoring":-1}}
manual owntracks/user/mobil/cmd {"_type":"cmd","action":"setConfiguration","configuration":{"_type":"configuration","monitoring":0}}
stateFormat wlanPresence
Hi,
Du willst ein Reading durch ein notify in dem Device setzen, welches das notify getriggert hat. Das unterbindet FHEM mMn wegen der Gefahr von Endlosschleifen?
eventuell Abhilfe: sleep 0.1; set ....
Gruß Otto
Hallo,
wegen
event-on-change-reading (?!face).* gibts gar kein Event auf dass das notify triggern könnte, meine Vermutung.
edit:
ZitatDu willst ein Reading durch ein notify in dem Device setzen, ...
Da steht nirgendwo was von setreading, ich seh nur das set-Befehle ausgeführt werden sollen ?
Zitat von: TomLee am 22 Dezember 2023, 14:28:03wegen event-on-change-reading (?!face).* gibts gar kein Event auf dass das notify triggern könnte, meine Vermutung.
Wie geschrieben, der Trigger funktioniert, das Notify registriert das Event korrekt.
(?!face).* bedeutet, alles triggern aus "face" - so meine Vorstellung. ;-)
Zitat von: TomLee am 22 Dezember 2023, 14:28:03Da steht nirgendwo was von setreading, ich seh nur das set-Befehle ausgeführt werden sollen ?
setreading erzeugt keinen Event in der Konstellation.
Währenddessen, ich sehe das notify hat getriggert. ;)
Aber mein Ansatz ist derzeit nur eine Ahnung, ich muss nicht richtig liegen.
Ok, ich sehe ein das ich zu vorschnell war, bestätigt halt wieder unseren Oberlehrer.
Value("presence.phone.user") eq "absent"
steht in STATE wirklich nur pesent oder absent ?
Wieder vorschnell, ohne es zuvor auszuprobieren ich frage allgemein:
ReadingsVal("$NAME","m",0) != 2
Funzt sowas, wenn man einen String mit einem numerischen Wert vergleicht ?
Kann sein, dass es da noch "Formfehler" beim IF gibt. Ich korrigiere das mit "ne". Ich habe ja auch geschrieben, dass ich in den IF-Zweig komme. Die Bedingung wird also als "wahr" interpretiert und die Kommandos ohne erkennbare Fehler im Log ausgeführt.
fhem("sleep 0.1; set MQTT2_owntracks_mobil signifikant");
funktioniert leider auch nicht - aus dem Notify. Über FHEMWEB mit {fhem("sleep 4;;set MQTT2_owntracks_mobil signifikant")}
allerdings geht es.
Dann liege ich falsch, aber beim nachdenken fällt mir auf: Ist sinnvoll set MQTT2_owntracks_mobil signifikant zu machen und damit den state zu setzen? Setzt das Device den nicht selbst? Was ist wenn das Device kurz nach dem set den state selbst neu setzt - anders als in "Ruhe"?
Hast mal mit dem Eventmonitor geschaut?
Zitat von: Otto123 am 22 Dezember 2023, 15:07:17Ist sinnvoll set MQTT2_owntracks_mobil signifikant zu machen und damit den state zu setzen? Setzt das Device den nicht selbst? Was ist wenn das Device kurz nach dem set den state selbst neu setzt - anders als in "Ruhe"?
Hast mal mit dem Eventmonitor geschaut?
Den Ansatz habe ich eben mal verfolgt und versucht mittels
fhem("set MQTTClient publish owntracks/user/mobil/cmd {\"_type\":\"cmd\",\"action\":\"setConfiguration\",\"configuration\":{\"_type\":\"configuration\",\"monitoring\":1}} ");
im Notify den Monitoring-Mode zu setzen. Auch hier das gleiche Ergebnis. Setze ich das Kommando wieder über FHEMWEB ab, klappt es.
Der Event-Monitor liefert
MQTT2_DEVICE MQTT2_owntracks_mobil tst: 1703255016
und im Notify steht im Reading "triggeredByEvent" ebenfalls "1703255016". Auch ein nachträglich eingefügtes
Log 1, "test";
im IF-Zweig zeigt mir, dass er wirklich aus dem Notify das Kommando ausführen müsst.
und was steht in fhem.log?
der eventmonitor mit option log zeigt nicht alles!!!
also in die echte datei schauen.
sorry ich begreife gerade erst was Du eigentlich machen willst :-X - ich habe Blödsinn geredet.
Ich meine jetzt: die Frage ist, ob der set Befehl beim owntracks Device wirklich ankommt, nicht ob der set Befehl abgesetzt wird. Den publish Befehl kannst Du im MQTT2_Server sehen.
Nur zur Info: mein Ansatz seinerzeit in der setlist im MQTT2 Device:
mode:Quite,Manual,Significant,Move { my %h=(Quite=>'-1',Manual=>'0',Significant=>'1',Move=>'2');fhem("set $NAME config ".qq({"_type":"configuration","monitoring":$h{$EVTPART1}})) }
Ich weiß aber, das dieses setzen sensibel war und nicht immer funktioniert hat. Also eventuell musst Du den sleep im notify einfach mal im Sekundenbereich versuchen.
Ich wollte damals zu Hause "Strom sparen" und hohe Genauigkeit nur beim Fahren haben. Das habe ich irgendwann wieder aufgegeben.
Ich habe jetzt mal etwas rumprobiert und Deine event-on-change Einstellung übernommen.
Mein notify, das sleep ist nur zur Sicherheit, spielt aber keine Rolle.
defmod MQTT2_owntracks_mi6_notify_1 notify MQTT2_owntracks_mi6:timestamp:.* sleep 3;; set MQTT2_owntracks_mi6 mode Manual
Dabei fällt mir auf: der Modus quite erzeugt keine Events. Ansonsten funktioniert das notify, egal was (und wo) ich als Modus einstelle, er macht immer wieder manual draus.
Man sieht das auch im Eventmonitor gut
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 raw: {"_type":"location","BSSID":"c4:41:1e:37:57:ca","SSID":"LEDE-1996","acc":10,"alt":155,"batt":60,"bs":1,"conn":"w","created_at":1703261502,"inregions":["zuHause"],"lat":5x.xxxxxx,"lon":1x.xxxxxx,"m":1,"tid":"hk","tst":1703261491,"vac":6,"vel":0}
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 accuracy: 10
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 longitude: 1x.xxxxxx
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 m: 1
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 accuracyVertical: 6
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 timestamp: 1703261491
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 latitude: 5x.xxxxxx
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 created_at: 1703261502
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 location: 5x.xxxxxx,1x.xxxxxx
2023-12-22 17:11:43 MQTT2_DEVICE MQTT2_owntracks_mi6 location_url: https://maps.google.com/maps?hl=en&q=5x.xxxxxx,1x.xxxxxx&t=k&z=19&ie=UTF8&iwloc=&output=embed
2023-12-22 17:11:46 MQTT2_DEVICE MQTT2_owntracks_mi6 raw: {"_type":"cmd","action":"setConfiguration","configuration":{"_type":"configuration","monitoring":0}}
Vielen lieben Dank für euren wertvollen Input und die Zeit. Hat mich motiviert, weiter nach einer Lösung zu suchen. :-)
Zitat von: Otto123 am 22 Dezember 2023, 16:07:04Ich wollte damals zu Hause "Strom sparen" und hohe Genauigkeit nur beim Fahren haben. Das habe ich irgendwann wieder aufgegeben.
Genau das ist der Grund. Das Ganze wird noch mit dem PRESENCE-Modul verbunden und sobald das Telefon zu Hause ist, soll owntracks den Modus "manual" aktivieren, damit der Akku geschont wird. Bin ich außerhalb vom WLAN, soll auf "signifikant" geschalten werden. Sollte ich unterwegs manuell auf "Move" schalten, soll nix passieren.
Ich weiß, auch ein Notify würde reichen, aber bin nun doch wieder bei einem DOIF gelandet. Grund ist auch, dass ich mit DOIF etwas Erfahrung habe und nicht "zweigleisig" fahren wollte. Außerdem finde ich es angenehmer, alle zu verarbeitenden Events für einen konkreten Anwendungsfall in einem DOIF zu haben, anstatt mehrere Notify zu nutzen.
Vermutlich hing es wirklich damit zusammen, dass ich bei dem MQTT-Device den Monitoring-Mode auf dem "state" gesetzt habe. Anbei mein DOIF (muss noch "optimiert" werden) und ich schaue mal, was der Alltag bringt.
Internals:
DEF setReadings {
if ( ["presence.phone"] ) {
set_Reading("$DEVICE",Value("$DEVICE"),1);
}
if ( ["MQTT2_owntracks:tst"] ) {
if ( get_Reading("presence.phone.user") eq "present") {
fhem("set $SELF user manual");
} elsif ( get_Reading("presence.phone.user") eq "absent" and ReadingsVal("$DEVICE","m",0) ne "2" ) {
fhem("set $SELF user signifikant");
}
if ( get_Reading("presence.phone.user2") eq "present") {
fhem("set $SELF user2 manual");
} elsif ( get_Reading("presence.phone.user2") eq "absent" and ReadingsVal("$DEVICE","m",0) ne "2" ) {
fhem("set $SELF user2 signifikant");
}
##set_Reading("$DEVICE",ReadingsVal("$DEVICE","tst",0),1);
}
}
setMode {
if ( ["$SELF:(user|user2)"] ) {
my $command;
my $mode;
my $topic;
my $dev = "$EVENT";
if ( $dev =~ m/user2/ ) {
$dev = "MQTT2_owntracks_mobil2";
$mode = get_Reading("user2");
$topic = "owntracks/user2/mobil2/cmd";
}
if ( $dev =~ m/user/ ) {
$dev = "MQTT2_owntracks_mobil";
$mode = get_Reading("user");
$topic = "owntracks/user/mobil/cmd";
}
if ( $mode eq "report" ) {
$command = $topic . " {\"_type\":\"cmd\",\"action\":\"reportLocation\"}";
} else {
$command = $topic . " {\"_type\":\"cmd\",\"action\":\"setConfiguration\",\"configuration\":{\"_type\":\"configuration\",\"monitoring\":$mode\}\}";
}
Log 1, "Device: $DEVICE Event: $EVENT Events: $EVENTS $command";
fhem("set MQTTClient publish $command");
}
}
FUUID 63558f3b-f33f-8b20-0b53-34c4a82e4a65feee
MODEL Perl
NAME owntracks_mode
NOTIFYDEV .*(presence.phone).*,.*(MQTT2_owntracks).*,global,.*(owntracks_mode).*
NR 185
NTFY_ORDER 50-owntracks_mode
STATE initialized
TYPE DOIF
VERSION 27740 2023-07-10 09:31:11
eventCount 168
OLDREADINGS:
READINGS:
2023-12-22 21:23:22 Device MQTT2_owntracks_mobil
2023-12-22 20:01:49 MQTT2_owntracks_mobil 1703271408
2023-12-22 19:59:23 MQTT2_owntracks_mobil2 1703271263
2023-12-22 21:23:22 block_setMode executed
2023-12-22 21:23:22 block_setReadings executed
2023-12-22 21:23:22 user 1
2023-12-22 21:06:14 mode enabled
2023-12-22 21:08:35 presence.phone.user absent
2023-12-22 21:06:14 state initialized
Regex:
accu:
bar:
barAvg:
collect:
cond:
:
0:
"MQTT2_owntracks:tst" MQTT2_owntracks:tst
"presence.phone" presence.phone
1:
"owntracks_mode:(user|user2)" owntracks_mode:(user|user2)
condition:
0
if ( ::EventDoIf('presence.phone',$hash,'',0) ) {
set_Reading("$DEVICE",Value("$DEVICE"),1);
}
if ( ::EventDoIf('MQTT2_owntracks',$hash,'tst',0) ) {
if ( get_Reading("presence.phone.user") eq "present") {
fhem("set owntracks_mode user manual");
} elsif ( get_Reading("presence.phone.user") eq "absent" and ReadingsVal("$DEVICE","m",0) ne "2" ) {
fhem("set owntracks_mode user signifikant");
}
if ( get_Reading("presence.phone.user2") eq "present") {
fhem("set owntracks_mode user2 manual");
} elsif ( get_Reading("presence.phone.user2") eq "absent" and ReadingsVal("$DEVICE","m",0) ne "2" ) {
fhem("set owntracks_mode user2 signifikant");
}
}
1
if ( ::EventDoIf('owntracks_mode',$hash,'(user|user2)',0) ) {
my $command;
my $mode;
my $topic;
my $dev = "$EVENT";
if ( $dev =~ m/user2/ ) {
$dev = "MQTT2_owntracks_mobil2";
$mode = get_Reading("user2");
$topic = "owntracks/user2/mobil2/cmd";
}
if ( $dev =~ m/user/ ) {
$dev = "MQTT2_owntracks_mobil";
$mode = get_Reading("user");
$topic = "owntracks/user/mobil/cmd";
}
if ( $mode eq "report" ) {
$command = $topic . " {\"_type\":\"cmd\",\"action\":\"reportLocation\"}";
} else {
$command = $topic . " {\"_type\":\"cmd\",\"action\":\"setConfiguration\",\"configuration\":{\"_type\":\"configuration\",\"monitoring\":$mode\}\}";
}
Log 1, "Device: $DEVICE Event: $EVENT Events: $EVENTS $command";
fhem("set MQTTClient publish $command");
}
helper:
NOTIFYDEV .*(presence.phone).*,.*(MQTT2_owntracks).*,global,.*(owntracks_mode).*
event user: signifikant
globalinit 1
last_timer 0
sleeptimer -1
triggerDev owntracks_mode
triggerEvents:
user: signifikant
block_setMode: executed
triggerEventsState:
user: signifikant
block_setMode: executed
internals:
perlblock:
0 setReadings
1 setMode
readings:
trigger:
uiState:
uiTable:
Attributes:
eventMap -1:silent 0:manual 1:signifikant 2:move
readingList user
room DOIF,MQTT2_DEVICE
setList user2:report,move,signifikant,silent,manual
user:report,move,signifikant,silent,manual
Danke Otto für deine Hinweise zum setList am MQTT Device. Damit habe ich mich noch mal beschäftigt, da ich anfangs dazu noch Verständnisprobleme bei der Perl-Syntax ( z.B. qq() oder %var für hash-List) hatte und nicht weiter drüber nachgedacht habe.
Ich nutze einen eigenen MQTT-Server und owntracks auf meinen Android-Telefonen. Bei owntracks kann man die Fernkonfiguration aktivieren und über FHEM den Monitoring-Mode der Geräte ändern oder abfragen (report), wo sich das Gerät aktuell befindet. owntracks sendet aller 5 Minuten einen Timestamp ( Reading tst), egal in welchem Monitoring-Mode man ist. Darauf kann mein DOIF reagieren und ich kann den Monitoring-Mode automatisiert ändern. Die Nutzer müssen also nichts manuell ändern und die Geräte sparen, wenn zu Hause, eine Menge Strom.
Das setList für das MQTT2_DEVICE sieht jetzt so aus (formatiert für bessere Lesbarkeit - ansonsten ist es ein Einzeiler):
mode:report,silent,manual,signifikant,move {
my %mode_mapping = (report => 'report', silent => '-1', manual => '0', signifikant => '1', move => '2');
if ( $mode_mapping{$EVTPART1} eq 'report' ) {
return "$DEVICETOPIC " . qq({"_type":"cmd","action":"reportLocation"});
} else {
return "$DEVICETOPIC " . qq({"_type":"cmd","action":"setConfiguration","configuration":{"_type":"configuration","monitoring":$mode_mapping{$EVTPART1}}});
}
}
Die Definition des DOIF sieht wie folgt aus:
#In der Bedingung und im Ausführungsteil werden die Schlüsselwörter $SELF durch den eigenen Namen des DOIF-Moduls,
#$DEVICE durch das aktuelle Device, $EVENT durch die passende Eventzeile, $EVENTS kommagetrennt durch alle Eventzeilen
#des Triggers ersetzt.
#-1 Quiet
#0 Manual
#1 Significant
#2 Move
checkWLANPresenceEvents {
##Check WLAN Presence - nur sich der Status des WLAN-Devices ändert, wird der Monitoring-Mode geändert
if ( ["presence.phone"] ) {
fhem("set " . AttrVal('$DEVICE','MQTTDevice',0) . " mode signifikant");
}
Log 1, "WLAN-Status $DEVICE auf $EVENT. Monitoring-Mode von MQTT-Device " . AttrVal('$DEVICE','MQTTDevice',0) . " auf signifikant gesetzt.";
}
setMonitoringMode {
if ( ["MQTT2_owntracks_:tst"] ) {
my $phoneWLANDevice = AttrVal("$DEVICE","WLANDev",0);
my $monitoringMode;
my $actMonitoringMode;
my $ageLastWLANStateSec;
my $actWLANState;
my $ageLastLocation;
my $setMonitoringMode = 0;
##aktueller WLAN-Status des MQTT-Device
$actWLANState = ReadingsVal("$phoneWLANDevice","state",0);
##Alter des letzten Readings vom presence-Device in Sekunden
$ageLastWLANStateSec = OldReadingsAge("$phoneWLANDevice","state",0);
##Alter des letzten Standorts vom MQTT-Devices
$ageLastLocation = OldReadingsAge("$DEVICE","lat",0);
##Aktuell hinterlegter Monitoring-Mode des MQTT-Devices
$actMonitoringMode = ReadingsVal("$DEVICE","m",0);
##wiederholt auf manual setzen, wenn letzter presenter WLAN-Status nicht älter 15 Minuten ist
if ( $actWLANState eq "present" and $ageLastWLANStateSec < 900 ) {
fhem("set $DEVICE mode manual");
Log 1, "$DEVICE $EVENT: Monitoring-Mode auf manual gesetzt."
}
if ( $actWLANState eq "absent" and $actMonitoringMode ne "2") {
fhem("set $DEVICE mode signifikant");
fhem("set $DEVICE mode report");
Log 1, "$DEVICE $EVENT: Monitoring-Mode auf signifikant gesetzt."
}
if ( $actWLANState eq "absent" and $actMonitoringMode eq "2") {
fhem("set $DEVICE mode move");
Log 1, "$DEVICE $EVENT: Monitoring-Mode auf move gesetzt."
}
}
}
Die Definitionen sind jetzt aus meiner Sicht generischer. Die Geräte vom Typ MQTT2_DEVICE und PRESENCE haben ein Attribut, wo jeweils das andere Gerät in Beziehung gesetzt wurde und ich dies in dem DOIF nutzen kann.
Bis jetzt läuft alles zuverlässig. Vielleicht helfen die Infos jemandem weiter.
Hier zur Vollständigkeit noch ein list eines MQTT2-Devices:
Internals:
CID owntracks_phone1
DEF owntracks_phone1
FUUID 647ee545-f33f-8b20-70f8-a0907ef3341244f0
IODev MQTTClient
LASTInputDev MQTTClient
MQTTClient_MSGCNT 1052
MQTTClient_TIME 2023-12-26 12:08:29
MSGCNT 1052
NAME MQTT2_owntracks_phone1
NR 210
STATE 1
TYPE MQTT2_DEVICE
eventCount 1057
OLDREADINGS:
2023-12-26 12:04:46 lat xxx
READINGS:
2023-12-26 12:08:29 BSSID xx:xx:xx:xx:xx:xx
2023-12-26 12:08:29 SSID xx
2023-12-26 12:08:29 _type cmd
2023-12-26 12:08:29 acc 7
2023-12-26 12:08:29 action setConfiguration
2023-12-26 12:08:29 alt 208
2023-12-26 12:08:29 batt 43
2023-12-26 12:08:29 bs 1
2023-12-26 12:08:29 configuration__type configuration
2023-12-26 12:08:29 configuration_monitoring 0
2023-12-26 12:08:29 conn w
2023-12-26 12:08:29 created_at 1703588910
2023-12-26 12:08:29 inregions_1 Home
2023-12-26 12:08:29 lat xx
2023-12-26 12:08:29 lon xx
2023-12-26 12:08:29 m 1
2023-12-26 12:08:29 state mode
2023-12-26 12:08:29 t u
2023-12-26 12:08:29 tid h
2023-12-26 12:08:29 tst 1703588684
2023-12-26 12:08:29 vac 10
2023-12-26 12:08:29 vel 0
Attributes:
WLANDev presence.phone.user1
devicetopic owntracks/user1/phone1/cmd
event-on-change-reading (?!face).*
oldreadings lat,event
readingList owntracks/user1/phone1:.* { json2nameValue($EVENT) }
owntracks/user1/phone1/cmd:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE
setList mode:report,silent,manual,signifikant,move { my %mode_mapping = (report => 'report', silent => '-1', manual => '0', signifikant => '1', move => '2'); if ( $mode_mapping{$EVTPART1} eq 'report' ) { return "$DEVICETOPIC " . qq({"_type":"cmd","action":"reportLocation"}); } else { return "$DEVICETOPIC " . qq({"_type":"cmd","action":"setConfiguration","configuration":{"_type":"configuration","monitoring":$mode_mapping{$EVTPART1}}}); } }
stateFormat m