[eingeführt] DOIF und set

Begonnen von Per, 22 Januar 2016, 17:22:50

Vorheriges Thema - Nächstes Thema

Per

Nachdem ich bei DOIF mittels cmdState einen Status benennen kann, würde ich, um nochmal einen Schwung Dummys entfernen zu können, den Status auch gern aktiv ändern, ohne extra eine Variable setzen müssen.
Also statt
define Var1 dummy
define doif1 DOIF ([Var1] eq "on" or [eigentliche on-Abfrage]) DOELSEIF ([Var1] eq "off" or [eigentliche on-Abfrage])
attr cmdState on|off
...
set Var1 on

gleich
define doif2 DOIF ([eigentliche on-Abfrage]) DOELSEIF ([eigentliche on-Abfrage])
attr cmdState on|off
...
set doif2 on

nehmen.

Gerade zum Testen fände ich das sehr praktisch.

Ellert

Meinst Du so
setreading doif2 state on
oder so
setstate doif2 on?

Per

#2
Zitat von: Ellert am 03 Februar 2016, 10:00:58
Meinst Du so
setreading doif2 state on?
Genau so. So schnell werden Wünsche erfüllt :D.

Per

Aber wie kann ich das DOIF-Icon im Floorplan die set oder setreading übergeben, ohne ein "Parallel-Dummy" zu verwenden.
Mit eventMap oder devStateIcon bekomme ich nur set, aber keine setreading übergeben, mit webCmd übergeben werden sie zwar angezeigt, aber wie frage ich sie ab? Aktuell bekomme ich nur "unknown argument state, choose one of disable initialize" als Fehlermeldung.
Ne andere Idee habe ich z.Zt. noch nicht. :(

igami

Ich wäre ja für ein

set myDOIF cmd 1

und dann wird der code auch tatsächlich ausgeführt. Könnte nützlich sein beim testen ob die Ausführung funktioniert.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Ralli

+1

ein


set DOIF cmd 1


etc. wäre super - muss aber dann natürlich zu einer unbedingten Ausführung führen, ohne Überprüfung der Bedingungen, die dafür eigentlich erforderlich sind. Eine kleine Nuss ist dann vielleicht darin zu sehen, wenn $EVENT oder $DEVICE o.ä. verarbeitet werden.
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

Ellert

Zitat von: Per am 19 Februar 2016, 15:04:57
Aber wie kann ich das DOIF-Icon im Floorplan die set oder setreading übergeben, ohne ein "Parallel-Dummy" zu verwenden.
Mit eventMap oder devStateIcon bekomme ich nur set, aber keine setreading übergeben, mit webCmd übergeben werden sie zwar angezeigt, aber wie frage ich sie ab? Aktuell bekomme ich nur "unknown argument state, choose one of disable initialize" als Fehlermeldung.
Ne andere Idee habe ich z.Zt. noch nicht. :(

Schon mal setstate probiert?

Per

Zitat von: Ellert am 19 Februar 2016, 16:35:57
Schon mal setstate probiert?
Setstete funktioniert in der "Kommandozeile", aber 1. habe ich dann die gleichen Probleme wie oben und 2. erzeuge ich keinen Event, womit die Sache als solches wenig nutzbringend ist.

Ellert

ZitatAktuell bekomme ich nur "unknown argument state, choose one of disable initialize" als Fehlermeldung.
DOIF kennt für set nur die beiden Argumente disable und initialize.

ZitatAber wie kann ich das DOIF-Icon im Floorplan die set oder setreading übergeben, ohne ein "Parallel-Dummy" zu verwenden.
Das wird dann wahrscheinlich mit einer readingsGroup gelingen. Der Wiki-Beitrag hat sehr hilfreiche Beispiele http://www.fhemwiki.de/wiki/ReadingsGroup


Per

Zitat von: Ellert am 19 Februar 2016, 17:47:51Das wird dann wahrscheinlich mit einer readingsGroup gelingen.
Habe ich auch nur i.V. mit einem Dummy gefunden.

Ellert

Müsste auch mit Icon und Perlcode gehen.

Ralli

Hallo,

ich möchte den Fred nochmal nach oben holen und das für eine Erweiterung vorschlagen.

Also: Eine  tolle Idee wäre, ein DOIF mit set DOIF ... zu einem bestimmten cmd-Zweig "zu zwingen". Dabei wäre es genial, wenn bei einem gesetzten cmdstate stattdessen mit set DOIF mein_custom_status aufgerufen werden könnte.

Wenn also z.B. für eine Rolladensteuerung, Beschattung oder Lichtszenensteuerung ein DOIF aus mehreren Zweigen besteht und diese mit cmdstate für den entsprechenden Status belegt sind, könnte ein Aufruf von set DOIF ... zum erzwungenen Ausführen dieses Zweiges führen. Damit könnte man universell Dummy-Variablen ersetzen, gleichzeitig manuell und automatisch entsprechende Dinge auslösen. Ich fände das genial.
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

Damian

Zitat von: Ralli am 26 Februar 2016, 08:42:46
Hallo,

ich möchte den Fred nochmal nach oben holen und das für eine Erweiterung vorschlagen.

Also: Eine  tolle Idee wäre, ein DOIF mit set DOIF ... zu einem bestimmten cmd-Zweig "zu zwingen". Dabei wäre es genial, wenn bei einem gesetzten cmdstate stattdessen mit set DOIF mein_custom_status aufgerufen werden könnte.

Wenn also z.B. für eine Rolladensteuerung, Beschattung oder Lichtszenensteuerung ein DOIF aus mehreren Zweigen besteht und diese mit cmdstate für den entsprechenden Status belegt sind, könnte ein Aufruf von set DOIF ... zum erzwungenen Ausführen dieses Zweiges führen. Damit könnte man universell Dummy-Variablen ersetzen, gleichzeitig manuell und automatisch entsprechende Dinge auslösen. Ich fände das genial.

ja, könnte man einbauen. Allerdings wird der Zustand dann gesetzt und die Befehle ausgeführt, obwohl die Bedingung nicht wahr ist.

Das könnte eine Fehlersuche erschweren, weil dann schnell behauptet werden kann, dass das Modul falsch schaltet.

Alternativ dazu kann man jetzt schon, in der jeweiligen Bedingung ... or [Mydummy] eq "on" hinzufügen.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ralli

Hallo Damian,

der Sinn bestände ja eben darin, Dummys nicht mehr nutzen zu müssen. Und ja, ein Zweig würde ausgeführt, obwohl die Bedingung nicht wahr ist - aber dazu wurde das DOIF ja dann durch den set-Befehl "gezwungen".
Gruß,
Ralli

Proxmox 8.1 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.6.20240316) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

Per

Zitat von: Damian am 26 Februar 2016, 10:37:40Alternativ dazu kann man jetzt schon, in der jeweiligen Bedingung ... or [Mydummy] eq "on" hinzufügen.
Jain.
1. Wie gesagt soll ja der Dummy weg
2. Wie reagiert der Dummy, wenn er aus Anzeigezwecken im DOIF gesetzt wird

Dass das DOIF durch set auch mit "falschen" Bedingungen schaltet, ist ja genau Sinn der Sache.