
defmod wol_schlazibotter WOL 00:00:00:00:00:00 192.168.178.28 UDP
attr wol_schlazibotter devStateIcon on:it_television@green:off off:it_television@grey:on .*:it_television@orange:refresh
attr wol_schlazibotter interval 10
attr wol_schlazibotter room infrarot
attr wol_schlazibotter shutdownCmd set schlazibotter_ir PowerOff
attr wol_schlazibotter useUdpBroadcast 192.168.178.255
attr wol_schlazibotter webCmd refresh
attr wol_schlazibotter wolCmd set schlazibotter_ir PowerOnZitat von: satprofi am 22 März 2026, 14:02:48...denn dann müsste ja 100.* ja reichen.Keine Ahnung, was "...müsste...", ich weiß nur, was bei mir funktioniert und das sind die Tailscale-IPv4 einzeln ausgeschrieben.
Zitat von: Bracew am 21 März 2026, 13:38:08Vielleicht ersteinmal ohne 100.* eingeben, sondern mit konkreter Tailscale Adresse versuchen. Kannst es, falls es dann funktioniert, wieder mit 100.* einstellen und testen.
Zitat von: Beta-User am 22 März 2026, 11:36:36Mal sehen, ob ich nachher noch Lust habe, f18.js entsprechend anzupassen.Hatte ich...
if (typeof fully !== 'undefined')
FW_cmd(FW_root + "?cmd=set TYPE=FULLY:FILTER=deviceid=" + fully.getDeviceId() + " host " + fully.getHostname() + "&XHR=1");In der f18_stt() ist auch der Code-Schnippsel ausZitat von: schwatter am 19 März 2026, 20:23:06function
f18_stt()
{
...}etwas angepaßt drin. Bei mir ist das aber funktionslos, es kommt der "normale" Dialog wie unter Chrome auch. Daher ist dort (in der close:function) nochmal ein fully-spezifischer set-Befehl drin. close:function(){
if(doSend && txt){
if (typeof fully !== 'undefined')
FW_cmd(FW_root + "?cmd=set TYPE=FULLY:FILTER=deviceid=" + fully.getDeviceId() + " gotSTT " + $("body").attr("fw_id") + " " + encodeURIComponent(txt) + "&XHR=1");
FW_cmd(FW_root+"?cmd=setreading "+$("body").attr("data-webName")+
" STT "+encodeURIComponent(txt)+"&XHR=1");
}
stt.stop();
$(div).remove();
} name:shellyPowerStripG4_split_cmd
filter:TYPE=MQTT2_DEVICE
desc:<p>Shelly Power Strip Gen4 using original firmware<br>NOTE: This is the split template. It creates four different devices.</p><p>MQTT settings at the device:<ul><li><i>Enable 'MQTT Control'</i> enabled</li><li><i>Enable RPC over MQTT</i> disabled</li><li><i>RPC status notifications over MQTT</i> disabled</li><li><i>Generic status update over MQTT</i> enabled</ul></p>
par:DEV_TPC;Shelly name in the topic;{ AttrVal('DEVICE','devicetopic',AttrVal('DEVICE','readingList','')) =~ m<(shellies/[^/]+|shelly(plus|pro4pm|1pmmini-)[^/:_]{4,}+)> ? $1 : undef }
order:A_19
par:ICON;ICON as set, defaults to message_socket;{ AttrVal('DEVICE','icon','message_socket') }
deletereading -q DEVICE (?!associatedWith|IODev).*
attr DEVICE devicetopic DEV_TPC
attr DEVICE icon ICON
attr DEVICE devStateIcon {my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot': '10px-kreis-gruen'; $onl = FW_makeImage($onl); my $light = FW_makeImage(ReadingsVal($name,'state','off')); my $cons = ReadingsNum($name,'power',0); my $total = round(ReadingsNum($name,'energy_total',0)/1000,2); my $ip = ReadingsVal($name,'wifi_sta_ip','none'); qq(<a href="http://$ip" target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a><div>Verbrauch: $cons W / Total: $total kwh</div>)}
attr DEVICE readingList $\DEVICETOPIC/online:.* online\
$\DEVICETOPIC:.* {}\
$\DEVICETOPIC/announce:.* { json2nameValue($EVENT, '', $JSONMAP) }\
$\DEVICETOPIC/command:.* {}\
$\DEVICETOPIC/command/switch_0:.* {}\
$\DEVICETOPIC/status:.* {}\
$\DEVICETOPIC/status/mqtt:.* { json2nameValue($EVENT, 'mqtt_', $JSONMAP) }\
$\DEVICETOPIC/status/sys:.* { json2nameValue($EVENT, 'sys_', $JSONMAP) }\
$\DEVICETOPIC/status/switch_0:.* { $EVENT =~ s/"output":true/"state":"on"/g; $EVENT =~ s/"output":false/"state":"off"/g; json2nameValue($EVENT,'',$JSONMAP) }\
$\DEVICETOPIC/status/ble:.* {}\
$\DEVICETOPIC/status/cloud:.* {}\
$\DEVICETOPIC/status/knx:.* {}\
$\DEVICETOPIC/status/powerstrip_ui:.* {}\
$\DEVICETOPIC/status/wifi:.* { json2nameValue($EVENT, 'wifi_', $JSONMAP) }\
$\DEVICETOPIC/status/ws:.* {}\
$\DEVICETOPIC/status/zigbee:.* {}
attr DEVICE setList toggle:noArg $\DEVICETOPIC/command/switch:0 toggle\
on:noArg $\DEVICETOPIC/command/switch:0 on\
off:noArg $\DEVICETOPIC/command/switch:0 off\
on-for-timer $\DEVICETOPIC/command/switch:0 on,$EVTPART1\
off-for-timer $\DEVICETOPIC/command/switch:0 off,$EVTPART1\
x_statusUpdate:noArg $\DEVICETOPIC/command status_update\
x_getDeviceInfo:noArg $\DEVICETOPIC/command announce\
x_check_update:noArg $\DEVICETOPIC/command ota_update_check\
x_update:noArg $\DEVICETOPIC/command ota_update_to_stable
attr DEVICE jsonMap output:state aenergy_total:energy_total apower:power freq:frequency
attr DEVICE setStateList on off toggle on-for-timer off-for-timer
attr DEVICE webCmd :
deleteattr DEVICE getList
set DEVICE x_statusUpdate
set DEVICE x_getDeviceInfo
loop:#:1:2:3
copy DEVICE DEVICE_CH#
deleteattr DEVICE_CH# stateFormat
deleteattr DEVICE_CH# devStateIcon
attr DEVICE_CH# devStateIcon {my $light = FW_makeImage(ReadingsVal($name,'state','off')); my $cons = ReadingsNum($name,'power',0); my $total = round(ReadingsNum($name,'energy_total',0)/1000,2); qq(<a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a><div>Verbrauch: $cons W / Total: $total kwh</div>)}
attr DEVICE_CH# readingList\
$\DEVICETOPIC/status/switch_#:.* { $EVENT =~ s/"output":true/"state":"on"/g; $EVENT =~ s/"output":false/"state":"off"/g; json2nameValue($EVENT,'',$JSONMAP) }\
$\DEVICETOPIC/command/switch_#:.* {}
attr DEVICE_CH# setList toggle:noArg $\DEVICETOPIC/command/switch:# toggle\
on:noArg $\DEVICETOPIC/command/switch:# on\
off:noArg $\DEVICETOPIC/command/switch:# off\
on-for-timer $\DEVICETOPIC/command/switch:# on,$EVTPART1\
off-for-timer $\DEVICETOPIC/command/switch:# off,$EVTPART1
loop:END
rename DEVICE_CH3 DEVICE_CH4
rename DEVICE_CH2 DEVICE_CH3
rename DEVICE_CH1 DEVICE_CH2
loop:#:2:3:4
defmod DEVICE_CH# MQTT2_\DEVICE
attr DEVICE_CH# devicetopic DEV_TPC
loop:END
set DEVICE attrTemplate set_associatedWith \CHANNELS=4
setreading DEVICE,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4 attrTemplateVersion 20230104
attr DEVICE,DEVICE_CH2,DEVICE_CH3,DEVICE_CH4 model powerstripg4
Zitat28 10:21:49 2026-03-22 person
29 10:19:52 2026-03-22 person
30 09:39:25 2026-03-22 person
31 09:09:59 2026-03-22 pet
32 09:07:39 2026-03-22 person
33 09:04:51 2026-03-22 pet
34 08:47:17 2026-03-22 pet
35 08:43:59 2026-03-22 pet
Sonos.FlurEG:currentTrack_TrackUri:.* {
my $hash = $defs{$NAME};
my $readings = $hash->{READINGS};
my $master = ReadingsVal($NAME, 'Master', '');
if ($master eq ReadingsVal($NAME, 'name', '')) {
my @list = devspec2array(".*:FILTER=DEF=RINCON.*:FILTER=name!=$master:FILTER=Master=$master");
foreach my $device (@list) {
foreach my $reading ( keys %{$readings} ) {
if ($reading =~ m/^currentTrack_.+$/) {
fhem("setreading $device $reading ".ReadingsVal($NAME, $reading, ''));
}
}
}
}
}