FHEM > Automatisierung

MSwitch_Support

<< < (19/22) > >>

Der_Tom:
Ich habe das device jetzt nur mal so geändert, das es sich in die aktuelle MSwitchverion einspielen lässt.
Hier mussten nur einige attribute entfernt werden, die es nicht mehr gibt.

Nach dem Einspielen wirst du wohl zu einem Update dieses Devicec aufgefordert werden , einfach anklicken.

Ich habe an der Funktion nichts geändert, würde ich wohl heute ( 3 Jahre später ) anders machen.

gruss Thomas


--- Code: ---defmod wlan_Info MSwitch Fritzbox # FreeCmd teleBot
attr wlan_Info MSwitch_Debug 0
attr wlan_Info MSwitch_Delete_Delays 1
attr wlan_Info MSwitch_Expert 1
attr wlan_Info MSwitch_Extensions 0
attr wlan_Info MSwitch_Help 1
attr wlan_Info MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
attr wlan_Info MSwitch_Include_Devicecmds 1
attr wlan_Info MSwitch_Include_MSwitchcmds 0
attr wlan_Info MSwitch_Include_Webcmds 0
attr wlan_Info MSwitch_Mode Full
attr wlan_Info eventMap /exec_cmd_1:read_info/exec_cmd_1 ID 1:clear_readings/
attr wlan_Info room 1_test
attr wlan_Info stateFormat {my $out = ReadingsVal($name,'Devices_all','no_info');;$out=~ s/\n/<br>/ig;;return $out;;}
attr wlan_Info webCmd read_info:clear_readings
--- Ende Code ---

RockFan:
Hallo Thomas,

Danke für das Prüfen und die Antwort.
Womit ich allerdings vom Verständnis her nicht so richtig zurecht komme sind die vielen setstate-Kommandos von damals. Ist darin nicht ein großer Teil der eigentlichen Logik enthalten?


Viele Grüße
Dieter

Der_Tom:

--- Zitat von: RockFan am 17 Mai 2022, 20:59:17 ---Hallo Thomas,

Danke für das Prüfen und die Antwort.
Womit ich allerdings vom Verständnis her nicht so richtig zurecht komme sind die vielen setstate-Kommandos von damals. Ist darin nicht ein großer Teil der eigentlichen Logik enthalten?


Viele Grüße
Dieter

--- Ende Zitat ---

Hi,

natürlich hast du recht , war ein copy and paste fehler - die Hälfte des Codes hat gefehlt.
Hier nochmal das komplette Device:


--- Code: ---defmod wlan_Info MSwitch Fritzbox # FreeCmd teleBot
attr wlan_Info MSwitch_Debug 0
attr wlan_Info MSwitch_Delete_Delays 1
attr wlan_Info MSwitch_Expert 1
attr wlan_Info MSwitch_Extensions 0
attr wlan_Info MSwitch_Help 1
attr wlan_Info MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
attr wlan_Info MSwitch_Include_Devicecmds 1
attr wlan_Info MSwitch_Include_MSwitchcmds 0
attr wlan_Info MSwitch_Include_Webcmds 0
attr wlan_Info MSwitch_Mode Full
attr wlan_Info eventMap /exec_cmd_1:read_info/exec_cmd_1 ID 1:clear_readings/
attr wlan_Info room 1_test
attr wlan_Info stateFormat {my $out = ReadingsVal($name,'Devices_all','no_info');;$out=~ s/\n/<br>/ig;;return $out;;}
attr wlan_Info webCmd read_info:clear_readings

setstate wlan_Info Angemeldete Gastuser :<br>
setstate wlan_Info 2019-05-04 13:42:31 .Device_Affected FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,teleBot-AbsCmd1
setstate wlan_Info 2019-05-04 16:45:15 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]cmd#[NF]cmd#[NF]{#[nl]my#[sp]$alldevices#[se]#[nl]my#[sp]$devhash#[sp]=#[sp]$defs{"Fritzbox"}#[se]#[nl]my#[sp]$testreading#[sp]=#[sp]$devhash#[sp]->{READINGS}#[se]#[nl]my#[sp]@areadings#[sp]=#[sp](#[sp]keys#[sp]%{$testreading}#[sp])#[se]#[nl]my#[sp]@username#[se]#[nl]foreach#[sp]my#[sp]$key#[sp](@areadings)#[sp]#[nl]{#[nl]my#[sp]$tmp#[sp]=#[sp]ReadingsVal(#[sp]'Fritzbox'#[ko]#[sp]$key#[ko]#[sp]'undef'#[sp])#[se]#[nl]if#[sp](#[sp]$tmp#[sp]=~#[sp]m/#[bs](gWLAN/#[sp])#[nl]{#[nl]@username#[sp]=#[sp]split(/#[sp]/#[ko]#[sp]$tmp)#[se]#[nl]$alldevices#[sp].=#[sp]$username[0]."#[bs]n"#[se]#[nl]}#[nl]}#[sp]#[sp]#[sp]#[nl]fhem("setreading#[sp]$SELF#[sp]Devices_all#[sp]Angemeldete#[sp]Gastuser#[sp]#[dp]#[bs]n$alldevices")#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]cmd#[NF]cmd#[NF]{#[nl]fhem("deletereading#[sp]$SELF#[sp]Devices_.*")#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[ND]teleBot-AbsCmd1#[NF]_msg#[NF]no_action#[NF][$SELF#[dp]Devices_all]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF][$SELF#[dp]EVTPART3]#[sp]>#[sp]0#[NF]#[NF]0#[NF]0#[NF]2#[NF]0#[NF]#[NF]0#[NF]0#[NF]1
setstate wlan_Info 2019-05-04 16:42:44 .Device_Events box_guestWlanCount:*#[tr]no_trigger
setstate wlan_Info 2019-05-04 13:10:48 .First_init done
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_Whitelist undef
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_cmd_off no_trigger
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_cmd_on box_guestWlanCount:*
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_condition "$EVENT"#[sp]=#[ti]#[sp]m/(#[pt]*#[dp]?)box_guestWlanCount(#[dp]#[pt]*)/
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_off no_trigger
setstate wlan_Info 2019-05-04 16:33:05 .Trigger_on no_trigger
setstate wlan_Info 2019-05-04 16:37:22 .Trigger_time
setstate wlan_Info 2019-05-04 13:10:48 .V_Check V2.00
setstate wlan_Info 2019-05-04 13:10:48 .sysconf undef
setstate wlan_Info 2019-05-04 16:44:40 Devices_all Angemeldete Gastuser :\

setstate wlan_Info 2019-05-04 16:37:46 EVENT box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:37:46 EVTFULL Fritzbox:box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:37:46 EVTPART1 Fritzbox
setstate wlan_Info 2019-05-04 16:37:46 EVTPART2 box_guestWlanCount
setstate wlan_Info 2019-05-04 16:37:46 EVTPART3 0
setstate wlan_Info 2019-05-04 13:10:48 Sys_Extension undef
setstate wlan_Info 2019-05-04 16:37:22 Trigger_device Fritzbox
setstate wlan_Info 2019-05-04 16:33:05 Trigger_log off
setstate wlan_Info 2019-05-04 16:42:44 last_activation_by event
setstate wlan_Info 2019-05-04 16:44:40 last_cmd 1
setstate wlan_Info 2019-05-04 16:37:46 last_event box_guestWlanCount:0
setstate wlan_Info 2019-05-04 16:44:40 last_exec_cmd   {my $alldevices;;my $devhash = $defs{"Fritzbox"};;my $testreading = $devhash ->{READINGS};;my @areadi....
setstate wlan_Info 2019-05-04 13:34:57 state on
--- Ende Code ---

RockFan:
Danke, Thomas!

Im Log stehen jetzt allerdings viele Fehler:

--- Code: ---2022.05.18 19:55:56 1: ############# 11491
2022.05.18 19:55:56 1: wlan_Info EERROR: syntax error at (eval 36135) line 1, near """fritzbox"
 
2022.05.18 19:55:56 1: Finalstring: if (""fritzbox:dect4_radio:RockhausRadio"" =~ m/(.*:?)box_guestWlanCount(:.*)/){$answer = 'true';} else {$answer = 'false';}
2022.05.18 19:55:56 1: Event: fritzbox:dect4_radio:RockhausRadio
2022.05.18 19:55:56 1: Eventfull: fritzbox:dect4_radio:RockhausRadio
2022.05.18 19:55:56 1: #############

2022.05.18 19:55:56 1: ############# 11491
2022.05.18 19:55:56 1: wlan_Info EERROR: Substitution pattern not terminated at (eval 36138) line 1.
 
2022.05.18 19:55:56 1: Finalstring: if (""fritzbox:mac_DC_4F_22_D4_E8_88:gosund-SP1-1 "[landevice5442799]" (WLAN, 38 / 7 Mbit/s, -75)"" =~ m/(.*:?)box_guestWlanCount(:.*)/){$answer = 'true';} else {$answer = 'false';}
2022.05.18 19:55:56 1: Event: fritzbox:mac_DC_4F_22_D4_E8_88:gosund-SP1-1 [landevice5442799] (WLAN, 38 / 7 Mbit/s, -75)
2022.05.18 19:55:56 1: Eventfull: fritzbox:mac_DC_4F_22_D4_E8_88:gosund-SP1-1 [landevice5442799] (WLAN, 38 / 7 Mbit/s, -75)
2022.05.18 19:55:56 1: #############

--- Ende Code ---

Die beiden Fehlerblöcke wiederholen sich für (wahrscheinlich) alle Netzwerkgeräte, die im Fritzbox-Device gefunden werden.

Bei mir heißen die beiden Devices "fritzbox" und "myTelegramBot". Das habe ich an allen Stellen angepasst. Hochkommata habe ich natürlich nicht angerührt.

Viele Grüße
Dieter

Der_Tom:

--- Zitat von: RockFan am 18 Mai 2022, 20:52:39 ---Danke, Thomas!

Im Log stehen jetzt allerdings viele Fehler:

--- Code: ---2022.05.18 19:55:56 1: ############# 11491
2022.05.18 19:55:56 1: wlan_Info EERROR: syntax error at (eval 36135) line 1, near """fritzbox"
 
2022.05.18 19:55:56 1: Finalstring: if (""fritzbox:dect4_radio:RockhausRadio"" =~ m/(.*:?)box_guestWlanCount(:.*)/){$answer = 'true';} else {$answer = 'false';}
2022.05.18 19:55:56 1: Event: fritzbox:dect4_radio:RockhausRadio
2022.05.18 19:55:56 1: Eventfull: fritzbox:dect4_radio:RockhausRadio
2022.05.18 19:55:56 1: #############

2022.05.18 19:55:56 1: ############# 11491
2022.05.18 19:55:56 1: wlan_Info EERROR: Substitution pattern not terminated at (eval 36138) line 1.
 
2022.05.18 19:55:56 1: Finalstring: if (""fritzbox:mac_DC_4F_22_D4_E8_88:gosund-SP1-1 "[landevice5442799]" (WLAN, 38 / 7 Mbit/s, -75)"" =~ m/(.*:?)box_guestWlanCount(:.*)/){$answer = 'true';} else {$answer = 'false';}
2022.05.18 19:55:56 1: Event: fritzbox:mac_DC_4F_22_D4_E8_88:gosund-SP1-1 [landevice5442799] (WLAN, 38 / 7 Mbit/s, -75)
2022.05.18 19:55:56 1: Eventfull: fritzbox:mac_DC_4F_22_D4_E8_88:gosund-SP1-1 [landevice5442799] (WLAN, 38 / 7 Mbit/s, -75)
2022.05.18 19:55:56 1: #############

--- Ende Code ---

Die beiden Fehlerblöcke wiederholen sich für (wahrscheinlich) alle Netzwerkgeräte, die im Fritzbox-Device gefunden werden.

Bei mir heißen die beiden Devices "fritzbox" und "myTelegramBot". Das habe ich an allen Stellen angepasst. Hochkommata habe ich natürlich nicht angerührt.

Viele Grüße
Dieter

--- Ende Zitat ---


sorry, ich habe den Post leider übersehen.

du musst diese Auslösebedingung:

--- Code: ---"$EVENT" =~ m/(.*:?)box_guestWlanCount(:.*)/
--- Ende Code ---

entsprechend ändern:

--- Code: ---$EVENT =~ m/(.*:?)box_guestWlanCount(:.*)/
--- Ende Code ---

d.h die " entfernen , dann ist der Fehler weg - das ist ein kompatibilitätsproblem zwischen der damaligen und heutigen mswitchversion.

um einen weiteren Fehler zu vermeiden solltest du das Attribut "MSwitch_EventMap " wie folgt belegen:


--- Code: ---/\[avm\]:avm:EVTPART3/
--- Ende Code ---



gruss Thomas

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln