Zitat von: frober am 02 Januar 2026, 23:22:30Der DS3502 (digitale Poti 10kOhm) wird unterstützt.Das probiere ich jetzt mal. Habe mir alles beschafft. Ich wollte zuerst den arduino MKR nehmen, das scheint mir aber mit dem DS3502 nun eher overkill zu sein. Ich berichte. Danke!
attr d devStateIcon .*:on:hue:ct:dim
attr d setList hue:colorpicker,HUE,0,100,65000 ct:colorpicker,CT,2500,6000 dim:slider,0,5,100devStateIcon off:FS20.off:on on:FS20.on:off .*:on:hue:ct:dimdefmod popupTest dummy
attr popupTest devStateIcon {\
\
my $reading1 = "state";;\
my $reading2 = "state1";;\
my $reading3 = "state2";;\
\
my $popupIcon = FW_makeImage("remotecontrol/black_btn_MENUDroid");;\
\
my $state = ReadingsVal($name,$reading1,"off");;\
my $state1 = ReadingsVal($name,$reading2,"off");;\
my $state2 = ReadingsVal($name,$reading3,"off");;\
\
# Icons\
my $icon = $state eq "on" ? "li_wht_on" : "li_wht_off";;\
my $icon1 = $state1 eq "on" ? "li_wht_on" : "li_wht_off";;\
my $icon2 = $state2 eq "on" ? "li_wht_on" : "li_wht_off";;\
\
# webCmd + Widgets\
my $cmdList = AttrVal($name, "webCmd", "");;\
my $allCmds = FW_widgetOverride($name, getAllSets($name));;\
my $h = "";;\
\
foreach my $cmd (split(":", $cmdList)) {\
my $htmlTxt;;\
my @c = split(' ', $cmd);;\
\
if (@c && $allCmds =~ m/\b$c[0]:([^ ]*)/) {\
my $values = $1;;\
foreach my $fn (sort keys %{$data{webCmdFn}}) {\
no strict "refs";;\
$htmlTxt = &{$data{webCmdFn}{$fn}}($FW_wname, $name, $FW_room, $cmd, $values);;\
use strict "refs";;\
last if defined $htmlTxt;;\
}\
}\
\
if ($htmlTxt) {\
$h .= "<p>$htmlTxt</p>";;\
} else {\
my $link = "cmd.$name=set $name $cmd";;\
$h .= "<p><a href='$FW_ME$FW_subdir?$link$FW_CSRF'>$cmd</a></p>";;\
}\
}\
\
$h =~ s/'/\\"/g;;\
\
# Popup mit drei klickbaren Lampen\
return\
'<span>'\
# erste Lampe\
. '<a href="/fhem?cmd=set '.$name.' '.$reading1.' '.($state eq "on" ? "off" : "on").'&XHR=1">'\
. FW_makeImage($icon)\
. '</a>'\
# zweite Lampe\
. '<a href="/fhem?cmd=set '.$name.' '.$reading2.' '.($state1 eq "on" ? "off" : "on").'&XHR=1">'\
. FW_makeImage($icon1)\
. '</a>'\
# dritte Lampe\
. '<a href="/fhem?cmd=set '.$name.' '.$reading3.' '.($state2 eq "on" ? "off" : "on").'&XHR=1">'\
. FW_makeImage($icon2)\
. '</a>'\
. '</span> '\
. '<a style="cursor:pointer" onclick=\''\
. 'event.stopPropagation();;'\
. 'var container=document.createElement("div");;'\
. 'container.style.display="flex";;'\
. 'container.style.flexDirection="column";;'\
. 'container.style.gap="8px";;'\
. 'var legacy=document.createElement("div");;'\
. 'legacy.innerHTML="'.$h.'";;'\
. 'container.appendChild(legacy);;'\
. 'FW_okDialog(container,this);;'\
. '\'>'.$popupIcon.'</a>';;\
}\
attr popupTest readingList state state1 state2 power 19colorpicker_HUE
attr popupTest room popup
attr popupTest setList power:slider,0,5,100 19colorpicker_HUE:colorpicker,HUE,0,1,359 state:select,on,off state1:select,on,off state2:select,on,off
attr popupTest webCmd power:19colorpicker_HUE:state:state1:state2
setstate popupTest on
setstate popupTest 2026-01-03 21:36:26 19colorpicker_HUE 202
setstate popupTest 2026-01-03 21:36:27 power 45
setstate popupTest 2026-01-03 21:44:27 state on
setstate popupTest 2026-01-03 21:44:27 state1 on
setstate popupTest 2026-01-03 21:44:26 state2 on
Zitat von: Stonemuc am 02 Januar 2026, 19:43:53er versucht dann in einem neuen Fenster dann eine IP mit Port 3002 zu öffnen - da kommt aber nur ein Seitenladefehler - auch wenn ich unter attr npm_proxy_ip meine richtige Server IP hinterlege - automatisch schreibt er eine 127.0.irgendwas da rein...
ZitatSollte nicht eher die WAV-Datei gelöscht werden, wenn erfolgreich in MP3 konvertiert wurde?
.. Ja, kommt demnächst mit rein.Zitat von: DS_Starter am 03 Januar 2026, 09:46:43Wichtig sind nun Sematiken, also die Herstellung von Beziehungen/Trigger die FANN helfen Zusammenhänge zu erkennen.Anwesenheitserkennung für Bewohner läuft bei mir - Big Brother lässt grüßen
Ideal wäre eine Füllsensor im Wäschekorb der darauf hinweist dass nun bald gewaschen werden muß ... Joke.
