Hi, bei u.a. DOIF möchte ich gerne, dass es auf alle Readings des Devices FritzBoxSNSH triggert, die mit mac anfangen
Beispiel:
Internals:
APICHECKED 1
HOST fritz.box
INTERVAL 60
LUAQUERY 1
M3U_LOCAL ./www/images/FritzBoxSNSH.m3u
M3U_URL http://192.168.0.30:8089/fhem/images/FritzBoxSNSH.m3u
MODEL FRITZ!Box 7590 (UI)
NAME FritzBoxSNSH
NR 825
PERL Modul functionality limited because of missing perl modules: Net::Telnet
REMOTE 1
STATE WLAN: on gWLAN: off
TELNET -1
TR064 0
TYPE FRITZBOX
WEBCM 0
READINGS:
2018-10-23 13:01:23 alarm1 Wecker 1
2018-10-23 13:01:23 alarm1_state off
2018-10-23 13:01:23 alarm1_target FON 1
2018-10-23 13:01:23 alarm1_time 00:00
2018-10-23 13:01:23 alarm1_wdays daily
2018-10-23 13:01:23 alarm2 Wecker 2
2018-10-23 13:01:23 alarm2_state off
2018-10-23 13:01:23 alarm2_target FON 1
2018-10-23 13:01:23 alarm2_time 00:00
2018-10-23 13:01:23 alarm2_wdays daily
2018-10-23 13:01:23 alarm3 Wecker 3
2018-10-23 13:01:23 alarm3_state off
2018-10-23 13:01:23 alarm3_target FON 1
2018-10-23 13:01:23 alarm3_time 00:00
2018-10-23 13:01:23 alarm3_wdays daily
2018-10-23 13:01:23 box_connect 5
2018-10-23 13:01:23 box_cpuTemp 57
2018-10-23 13:01:23 box_dect on
2018-10-23 13:01:23 box_fwVersion 154.06.92
2018-10-23 13:01:23 box_guestWlan off
2018-10-23 13:01:23 box_guestWlanCount 0
2018-10-23 13:01:23 box_guestWlanRemain 0
2018-10-23 13:01:23 box_ipExtern 83.135.78.248
2018-10-23 12:24:42 box_model FRITZ!Box 7590 (UI) [1und1]
2018-10-23 13:01:23 box_moh default
2018-10-23 13:01:23 box_powerRate 23
2018-10-23 13:01:23 box_rateDown 4.717
2018-10-23 13:01:23 box_rateUp 2.215
2018-10-23 13:01:23 box_stdDialPort dect1
2018-10-23 13:01:23 box_tr064 off
2018-10-23 13:01:23 box_tr069 off
2018-10-23 13:01:23 box_wlanCount 6
2018-10-23 13:01:23 box_wlan_2.4GHz on
2018-10-23 13:01:23 box_wlan_5GHz on
2018-10-23 13:01:23 dect1 L410
2018-10-23 13:01:23 dect1_fwVersion 0.00
2018-10-23 13:01:23 dect1_intRingTone HandsetDefault
2018-10-23 13:01:23 dect1_intern 610
2018-10-23 13:01:23 dect1_manufacturer Siemens
2018-10-23 13:01:23 dect1_model 0x00
2018-10-23 13:01:23 fon1 Telefon
2018-10-23 13:01:23 fon1_intern 1
2018-10-23 13:01:23 fon2 Telefon
2018-10-23 13:01:23 fon2_intern 2
2018-10-23 13:01:23 lastReadout 353 values captured in 1.00 s
2018-10-23 13:01:23 mac_00_04_0E_7A_1A_D7 SNSOG (LAN1, 100 Mbit/s)
2018-10-23 13:01:23 mac_00_19_88_14_99_0B Speaker-Bad (WLAN, 48 / 48 Mbit/s, -75)
2018-10-23 13:01:23 mac_00_24_6D_FF_05_4A KNX-IP-ROUTER (LAN1, 100 Mbit/s)
2018-10-23 13:01:23 mac_10_BF_48_EA_82_D7 android-cf2f5b192d7b409d (WLAN, 65 / 65 Mbit/s, -64)
2018-10-23 13:01:23 mac_20_CF_30_C3_A2_77 mainfhem (LAN1, 100 Mbit/s)
2018-10-23 13:01:23 mac_40_BD_32_75_52_16 VacuumRobot (WLAN, 58 / 52 Mbit/s, -75)
2018-10-23 13:01:23 mac_40_F3_08_C4_12_59 android-64ebd8a5385f4338 (WLAN, 86 / 58 Mbit/s, -71)
2018-10-23 13:01:23 mac_44_4E_6D_23_1D_07 fritz.box
2018-10-23 13:01:23 mac_54_04_A6_31_81_81 stephan-fest (LAN1, 100 Mbit/s)
2018-10-23 13:01:23 mac_60_01_94_51_9F_AE ibims-Obi01 (WLAN, 72 / 54 Mbit/s, -63)
2018-10-23 13:01:23 mac_7C_A1_77_BC_51_ED HUAWEI-MediaPad-T5-5263b4 (WLAN, 72 / 1 Mbit/s, -58)
2018-10-23 13:01:23 mac_B8_27_EB_25_AD_57 hzfhem (LAN1, 100 Mbit/s)
2018-10-23 13:01:23 mac_B8_27_EB_36_09_99 hvfhem (LAN1, 100 Mbit/s)
2018-10-23 13:01:23 mac_DE_AD_BE_EF_FE_EB OW-NANO (LAN1, 100 Mbit/s)
2018-10-23 13:01:23 state WLAN: on gWLAN: off
2018-10-23 13:01:23 tam1 Anrufbeantworter
2018-10-23 13:01:23 tam1_newMsg 0
2018-10-23 13:01:23 tam1_oldMsg 0
2018-10-23 13:01:23 tam1_state off
2018-10-23 13:01:23 user01 (guest)
2018-10-23 13:01:23 user01_thisMonthTime 0:00
2018-10-23 13:01:23 user01_todaySeconds 0
2018-10-23 13:01:23 user01_todayTime 0:00
2018-10-23 13:01:23 user01_type Guest
2018-10-23 13:01:23 userTicket01 463130
fhem:
LOCAL 0
definedHost undefined
is_double_wlan 1
lastHour 0
modulVersion $Date: 2018-08-01 19:35:58 +0200 (Wed, 01 Aug 2018) $
radioCount 40
sid 9b578f7b8f7cb412
sidTime 1540292483
610:
brand Siemens
id 1
model 0x00
userId 1
landevice:
192.168.0.1 fritz.box
192.168.0.100 stephan-fest
192.168.0.101 android-64ebd8a5385f4338
192.168.0.102 DESKTOP-2COKNOK
192.168.0.103 android-536c671295c898ac
192.168.0.104 daheim-laptop
192.168.0.105 TV-UE46ES7000
192.168.0.106 android-26c84f6db48f3ef9
192.168.0.107 ibims-Obi01
192.168.0.108 Wohnzimmer-Front
192.168.0.109 amazon-c14814a5b
192.168.0.110 Eni-PC
192.168.0.111 BRN30055C04F269
192.168.0.112 ESP-1CADAB
192.168.0.113 connector-2
192.168.0.114 rmss-linux
192.168.0.115 android-3e3b2c5093895d2
192.168.0.116 ESP-FDDF3D
192.168.0.118 Falki-Phone
192.168.0.119 Whatareateabout
192.168.0.120 iPad-von-Lutz
192.168.0.121 RM-S7
192.168.0.122 android-da3e863114c20135
192.168.0.123 MiPaddle
192.168.0.124 MacBook-Pro-5
192.168.0.125 TX-NR509
192.168.0.126 DESKTOP-47M0J86
192.168.0.127 PC-192-168-0-127
192.168.0.128 VacuumRobot
192.168.0.129 Honor-10-d4b4c0b4e69e49e2
192.168.0.130 android-cf2f5b192d7b409d
192.168.0.131 MacBook-Pro-5
192.168.0.132 PC-192-168-0-132
192.168.0.133 DESKTOP-2COKNOK
192.168.0.134 LEDController
192.168.0.135 HUAWEI-MediaPad-T5-5263b4
192.168.0.136 Galaxy-S9
192.168.0.2 SNSOG
192.168.0.201 steaug012
192.168.0.27 HL3170CDW
192.168.0.3 SNSG
192.168.0.30 mainfhem
192.168.0.31 hvfhem
192.168.0.32 hzfhem
192.168.0.4 SNSWZ
192.168.0.43 KNX-IP-ROUTER
192.168.0.91 Speaker-Bad
192.168.0.99 OW-NANO
landevice1331 KNX-IP-ROUTER
landevice2217 Speaker-Bad
landevice2222 HL3170CDW
landevice2224 SNSOG
landevice2225 daheim-laptop
landevice3977 Eni-PC
landevice3978 RM-S7
landevice3979 android-536c671295c898ac
landevice3980 DESKTOP-2COKNOK
landevice3981 android-da3e863114c20135
landevice3982 DESKTOP-2COKNOK
landevice3983 android-26c84f6db48f3ef9
landevice3984 android-64ebd8a5385f4338
landevice3986 DESKTOP-47M0J86
landevice3987 Honor-10-d4b4c0b4e69e49e2
landevice3989 rmss-linux
landevice3990 android-cf2f5b192d7b409d
landevice3991 TV-UE46ES7000
landevice3994 MiPaddle
landevice3997 HUAWEI-MediaPad-T5-5263b4
landevice3999 Falki-Phone
landevice4000 iPad-von-Lutz
landevice4001 amazon-c14814a5b
landevice4002 android-3e3b2c5093895d2
landevice4004 ESP-1CADAB
landevice4005 ESP-FDDF3D
landevice4006 BRN30055C04F269
landevice4009 steaug012
landevice4010 fritz.box
landevice4072 ibims-Obi01
landevice4073 Wohnzimmer-Front
landevice4074 connector-2
landevice4075 PC-192-168-0-4
landevice4076 Whatareateabout
landevice4078 MacBook-Pro-5
landevice4079 TX-NR509
landevice4081 PC-192-168-0-127
landevice4082 VacuumRobot
landevice4083 MacBook-Pro-5
landevice4084 PC-192-168-0-132
landevice4085 Galaxy-S9
landevice7113 SNSWZ
landevice7117 LEDController
landevice734 hzfhem
landevice737 hvfhem
landevice745 mainfhem
landevice779 stephan-fest
landevice8064 OW-NANO
landevice8078 SNSG
radio:
0
1
10
11
12
13
14
15
16
17
18
19
2
20
21
22
23
24
25
26
27
28
29
3
30
31
32
33
34
35
36
37
38
39
4
5
6
7
8
9
wlanDevice:
00_19_88_14_99_0B:
rssi -75
speed 48
speed_rx 48
08_C5_E1_16_34_15:
rssi 0
speed 0
speed_rx 0
0C_D2_92_47_11_89:
rssi 0
speed 0
speed_rx 0
10_BF_48_EA_82_D7:
rssi -64
speed 65
speed_rx 65
38_94_96_9B_85_07:
rssi 0
speed 0
speed_rx 0
40_BD_32_75_52_16:
rssi -75
speed 58
speed_rx 52
40_F3_08_C4_12_59:
rssi -71
speed 86
speed_rx 58
4C_32_75_27_32_A4:
rssi 0
speed 0
speed_rx 0
50_F5_DA_5A_A3_40:
rssi 0
speed 0
speed_rx 0
58_48_22_DB_CB_02:
rssi 0
speed 0
speed_rx 0
58_48_22_EE_9F_A5:
rssi 0
speed 0
speed_rx 0
5C_CF_7F_FD_DF_3D:
rssi 0
speed 0
speed_rx 0
60_01_94_1C_AD_AB:
rssi 0
speed 0
speed_rx 0
60_01_94_51_9F_AE:
rssi -63
speed 72
speed_rx 54
60_01_94_95_76_CF:
rssi 0
speed 0
speed_rx 0
60_57_18_AD_66_E6:
rssi 0
speed 0
speed_rx 0
7C_A1_77_BC_51_ED:
rssi -58
speed 72
speed_rx 1
84_78_8B_68_75_EA:
rssi 0
speed 0
speed_rx 0
90_94_97_F8_73_51:
rssi 0
speed 0
speed_rx 0
A0_9D_C1_94_C0_8F:
rssi 0
speed 0
speed_rx 0
A0_9D_C1_98_CA_26:
rssi 0
speed 0
speed_rx 0
A8_5C_2C_38_79_2D:
rssi 0
speed 0
speed_rx 0
BC_85_56_91_F7_9B:
rssi 0
speed 0
speed_rx 0
D0_87_E2_AB_40_73:
rssi 0
speed 0
speed_rx 0
D8_C4_6A_94_1D_F4:
rssi 0
speed 0
speed_rx 0
DC_A9_04_94_D7_CB:
rssi 0
speed 0
speed_rx 0
E4_2B_34_80_04_CE:
rssi 0
speed 0
speed_rx 0
F0_18_98_27_A3_CE:
rssi 0
speed 0
speed_rx 0
helper:
TimerCmd FritzBoxSNSH.Cmd
TimerReadout FritzBoxSNSH.Readout
Attributes:
INTERVAL 60
allowTR064Command 1
devStateIcon .*on.*off:WLAN_on_gWLAN_off .*on.*on.*:WLAN_on_gWLAN_on WLAN..off.*:WLAN_off
event-on-change-reading mac_.*
room presence
Dabei steht in $DEVICE "FritzBoxSNSH" drin und in $EVENT "mac_00_19_88_14_99_0B: Speaker-Bad (WLAN, 54 / 48 Mbit/s, -76).
Das würde ich gerne am Doppelpunkt splitten:
my ($dev, $eve) = split(": ",$EVENT);
Leider bekomme ich dabei einen perl Fehler:
error: { my ($dev, $eve) = split(":",mac_40_BD_32_75_52_16: VacuumRobot (WLAN, 58 / 48 Mbit/s, -75)); fhem(set alarmbot message $dev, $eve); }: Substitution replacement not terminated at (eval 63742) line 1.
Ich steh voll aufm Schlauch, kann jemand helfen?
Vielen Dank schonmal,
Stephan
Internals:
CFGFN
DEF (["FritzBoxSNSH:mac"])
({
my ($dev, $eve) = split(":",$EVENT);
fhem(set alarmbot message $dev, $eve);
})
MODEL FHEM
NAME DF_presence2
NR 2126
NTFY_ORDER 50-DF_presence2
STATE cmd_1
TYPE DOIF
READINGS:
2018-10-23 13:00:23 Device FritzBoxSNSH
2018-10-23 13:00:23 cmd 1
2018-10-23 13:00:23 cmd_event FritzBoxSNSH
2018-10-23 13:00:23 cmd_nr 1
2018-10-23 13:00:23 error { my ($dev, $eve) = split(":",mac_40_BD_32_75_52_16: VacuumRobot (WLAN, 58 / 48 Mbit/s, -75)); fhem(set alarmbot message $dev, $eve); }: Substitution replacement not terminated at (eval 63742) line 1.
2018-10-23 13:00:07 mode enabled
2018-10-23 13:00:23 state cmd_1
Regex:
cond:
:
0:
"FritzBoxSNSH:mac" FritzBoxSNSH:mac
attr:
cmdState:
wait:
waitdel:
condition:
0 EventDoIf('FritzBoxSNSH',$hash,'mac',0)
devices:
do:
0:
0 { my ($dev, $eve) = split(":",$EVENT); fhem(set alarmbot message $dev, $eve); }
1:
helper:
event mac_40_BD_32_75_52_16: VacuumRobot (WLAN, 58 / 48 Mbit/s, -75)
globalinit 1
last_timer 0
sleeptimer -1
timerdev FritzBoxSNSH
timerevent mac_40_BD_32_75_52_16: VacuumRobot (WLAN, 58 / 48 Mbit/s, -75)
triggerDev FritzBoxSNSH
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: FritzBoxSNSH
error: { my ($dev, $eve) = split(":",mac_40_BD_32_75_52_16: VacuumRobot (WLAN, 58 / 48 Mbit/s, -75)); fhem(set alarmbot message $dev, $eve); }: Substitution replacement not terminated at (eval 63742) line 1.
state: cmd_1
timerevents:
mac_40_BD_32_75_52_16: VacuumRobot (WLAN, 58 / 48 Mbit/s, -75)
mac_40_F3_08_C4_12_59: android-64ebd8a5385f4338 (WLAN, 86 / 58 Mbit/s, -71)
mac_60_01_94_51_9F_AE: ibims-Obi01 (WLAN, 72 / 54 Mbit/s, -60)
timereventsState:
mac_40_BD_32_75_52_16: VacuumRobot (WLAN, 58 / 48 Mbit/s, -75)
mac_40_F3_08_C4_12_59: android-64ebd8a5385f4338 (WLAN, 86 / 58 Mbit/s, -71)
mac_60_01_94_51_9F_AE: ibims-Obi01 (WLAN, 72 / 54 Mbit/s, -60)
triggerEvents:
mac_40_BD_32_75_52_16: VacuumRobot (WLAN, 58 / 48 Mbit/s, -75)
mac_40_F3_08_C4_12_59: android-64ebd8a5385f4338 (WLAN, 86 / 58 Mbit/s, -71)
mac_60_01_94_51_9F_AE: ibims-Obi01 (WLAN, 72 / 54 Mbit/s, -60)
triggerEventsState:
mac_40_BD_32_75_52_16: VacuumRobot (WLAN, 58 / 48 Mbit/s, -75)
mac_40_F3_08_C4_12_59: android-64ebd8a5385f4338 (WLAN, 86 / 58 Mbit/s, -71)
mac_60_01_94_51_9F_AE: ibims-Obi01 (WLAN, 72 / 54 Mbit/s, -60)
internals:
itimer:
readings:
trigger:
uiState:
uiTable:
Attributes:
do always
notexist notexist
room _doif,presence
widgetOverride cmdState:textField-long
Probier mal mit einem Leerzeichen vor $EVENT:
my ($dev, $eve) = split(":", $EVENT);
VG Sebastian
Getestet mit notify und dummy:
FritzBox:mac_12_27_EB_22_8F_33:.* {
my ($dev, $eve) = split(":", $EVENT);
fhem("setreading device message $dev");
fhem("setreading device message1 $eve");
fhem("setreading device event $EVENT");
}
NAME device
NR 74
STATE on
TYPE dummy
READINGS:
2018-10-23 14:22:08 event mac_12_27_EB_22_8F_33: ioserver (WLAN, 72 / 1 Mbit/s, -61)
2018-10-23 14:22:08 message mac_12_27_EB_22_8F_33
2018-10-23 14:22:08 message1 ioserver (WLAN, 72 / 1 Mbit/s, -61)
2018-10-06 08:55:51 state on
Sollte mit PERL im DOIF genauso gehen ;)
VG Sebastian
Zitat von: binford6000 am 23 Oktober 2018, 14:25:03
Getestet mit notify und dummy:
FritzBox:mac_12_27_EB_22_8F_33:.* {
my ($dev, $eve) = split(":", $EVENT);
fhem("setreading device message $dev");
fhem("setreading device message1 $eve");
fhem("setreading device event $EVENT");
}
NAME device
NR 74
STATE on
TYPE dummy
READINGS:
2018-10-23 14:22:08 event mac_12_27_EB_22_8F_33: ioserver (WLAN, 72 / 1 Mbit/s, -61)
2018-10-23 14:22:08 message mac_12_27_EB_22_8F_33
2018-10-23 14:22:08 message1 ioserver (WLAN, 72 / 1 Mbit/s, -61)
2018-10-06 08:55:51 state on
Sollte mit PERL im DOIF genauso gehen ;)
VG Sebastian
fast:
my ($dev, $eve) = split(": ","$EVENT");
Zitat von: binford6000 am 23 Oktober 2018, 14:25:03
Sollte mit PERL im DOIF genauso gehen ;)
ja, dachte ich auch.
Lösung des Problems war, im split das $EVENT in "" zu setzen.
Dabei bin ich mir 100% sicher, dass ich das vorhin getestet hatte... Mhpf.
Jetzt läufts. Danke dir für deine Hilfe!
EDIT: Danke euch! hab grad deinen Beitrag gelesen. Bin mir aber immer noch sicher, dass ich das vorhin so hatte ...
Würde mich aber (mal) immer noch interessieren, warum es bei Sebastian nicht zu stören scheint ...
Grüße,
Stephan
Zitat von: abc2006 am 23 Oktober 2018, 17:22:59
ja, dachte ich auch.
Lösung des Problems war, im split das $EVENT in "" zu setzen.
Dabei bin ich mir 100% sicher, dass ich das vorhin getestet hatte... Mhpf.
Jetzt läufts. Danke dir für deine Hilfe!
EDIT: Danke euch! hab grad deinen Beitrag gelesen. Bin mir aber immer noch sicher, dass ich das vorhin so hatte ...
Würde mich aber (mal) immer noch interessieren, warum es bei Sebastian nicht zu stören scheint ...
Grüße,
Stephan
Beim DOIF wird $EVENT durch den Inhalt ersetzt (es ist keiner Perlvariable), damit es auch im FHEM-Modus funktioniert, daher muss es in Anführungszeichen.
Ah okay, dann ist es klar. Dann hab ich wohl vorhin beim testen noch einen anderen Fehler gemacht ..
Danke und Grüße,
Stephan
Zitat von: Damian am 23 Oktober 2018, 15:23:39
fast:
my ($dev, $eve) = split(": ","$EVENT");
Ist das DOIF im PERL Modus spezifisch?
Im notify funktionierts ohne das Leerzeichen nach dem : :o
VG Sebastian
Es geht auch im DOIF ohne Leerzeichen. Allerdings fängt dann der zweite Teil mit einem Leerzeichen an.
Grüße,
Stephan
Es geht in die zweite Runde:
(["FritzBoxSNSH:mac"])
({
my ($dev, $eve) = split(": ","$EVENT");
my ($nam, $sig) = split("\(", "$eve");
fhem("setreading $SELF device $dev");
fhem("setreading $SELF name $nam");
fhem("setreading $SELF signal $sig");
fhem("set alarmbot message $dev, $eve");
})
jetzt bekomme ich die Fehlermeldung
ZitatDF_presence2 DOIF: no right bracket: ({ my ($dev, $eve) = split(": ","$EVENT"); my ($nam, $sig) = split("\(", "$eve"); fhem("setreading DF_presence2 device $dev"); fhem("setreading DF_presence2 name $nam"); fhem("setreading DF_presence2 signal $sig"); fhem("set alarmbot message $dev, $eve"); })
Vermutlich ist der Perl-Prüfung der Sachverhalt nicht bewusst ...
"(" funktioniert nicht
"\(" funktioniert nicht
"\\(" funktioniert nicht
ich teste mal weiter, vielleicht hab ich noch ein paar Ideen ..
Grüße,
Stephan
Habe jetzt so gebaut:
(["FritzBoxSNSH:mac"])
({
my ($dev, $eve) = split(": ","$EVENT");
my ($nam, $speed, $rssi) = split(",", "$eve");
my ($nam, $net) = split(" ", "$nam");
$net = substr($net,1);
chop $rssi;
fhem("setreading $SELF _device $dev");
fhem("setreading $SELF _name $nam");
fhem("setreading $SELF _network $net");
fhem("setreading $SELF _speed $speed");
fhem("setreading $SELF _rssi $rssi");
fhem("set alarmbot message $dev, $eve");
})
Top.
Auch wieder was gelernt :)
VG Sebastian