Zitat von: betateilchen am 16 Dezember 2025, 10:45:11Das macht für mich überhaupt keinen Sinn.
Offenbar haben wir völlig unterschiedliche Philosophien, Deine ist eher technisch durch die Besonderheiten von OpenWRT getrieben, meine eher von "menschlichen" Anforderungen der Anwender.
defmod tj JsonMod file:///tmp/test.json
attr tj readingList complete()
setstate tj 2025-12-16 10:51:59 .computedReadings data.sensors.0.datasources.1.numberValue,data.sensors.0.datasources.1.__typename,data.sensors.0.datasources.0.name,data.sensors.0.datasources.0.__typename,data.sensors.0.datasources.1.name,data.sensors.0.datasources.0.unit,data.sensors.0.datasources.0.stringValue,data.sensors.0.datasources.0.datasourceType,data.sensors.0.type,data.sensors.0.datasources.0.id,data.sensors.0.datasources.1.stringValue,data.sensors.0.datasources.1.id,data.sensors.0.datasources.0.numberValue,data.sensors.0.datasources.1.unit,data.sensors.0.datasources.1.datasourceType,data.sensors.0.id
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.__typename Datasource
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.datasourceType SPEED_LIMIT
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.id viacloud:46:8bd1fb1c-b3d9-4132-83f7-1909219615b5
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.name Speed Limit
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.numberValue 50
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.stringValue 50
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.unit km/h
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.__typename Datasource
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.datasourceType AVERAGE_SPEED
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.id viacloud:46:8bd1fb1c-b3d9-4132-83f7-1909219615b5
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.name Average Speed
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.numberValue 48
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.stringValue 48
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.unit km/h
setstate tj 2025-12-16 10:51:59 data.sensors.0.id viacloud:46:8bd1fb1c-b3d9-4132-83f7-1909219615b5
setstate tj 2025-12-16 10:51:59 data.sensors.0.type SPEED_SIGN
attr WEB longpoll websocketumgestellt. Auf einmal gab es auch bei mehreren offenen Seiten keine Verzögerungen mehr. Allerdings kann ich die Tragweite dieser Änderung nicht vollständig überblicken, also wo gibt es dadurch noch weitere - vielleicht unerwünschte - Nebenwirkungen.Zitat von: jw2013 am 16 Dezember 2025, 10:33:10Das Ziel war hier eine Dynamische Commandref, die sich nur auf die lokal installierten Module bezieht.
Zitat von: rudolfkoenig am 16 Dezember 2025, 10:25:45Warum ist das besser, bzw. inwieweit ist es anders als "attr global commandref modular" ?
attr DG.Treppenhaus.Jalousie.Position ASC_CommandTemplate set $name Pos.Absolute $pos; set DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute $slatpos;
attr DG.Treppenhaus.Jalousie.Position ASC_CommandTemplate set $name Pos.Absolute $pos; sleep 120 quiet; set DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute $slatpos;attr <device> ASC_CommandTemplate {myASCsub($name,$nameLamelle,$pos,$slatpos,$cause);}
# ...und in der 99_myUtils:
sub myACSsub {
my ($name,$pos,$slatpos,$cause) = @_;
fhem("set $name Pos.Absolute $pos");
if ($slatpos ne '-1') {
fhem("set $nameLamelle Lamelle.Absolute $slatpos");
}
return;
}
Danke.Zitat von: betateilchen am 16 Dezember 2025, 10:16:23Man kann doch innerhalb der FHEM Installation auch auf die commandref komplett verzichten und stattdessen auf die identische commandref im Internet verlinken.
sub myASCsub {
my ($name,$pos,$slatpos,$cause) = @_;
fhem("set $name Pos.Absolute $pos");
if ($slatpos ne '-1') {
my $lname = $name =~ s/Position$/Lamelle/rxms;
fhem("set $lname Lamelle.Absolute $slatpos");
}
return;
}Damit ist die sub für alle Jal geeignet, falls die Namenskonvention immer so ist.