[nicht immer aber gelöst] Bedingung "immer"

Begonnen von holle75, 12 August 2024, 12:05:52

Vorheriges Thema - Nächstes Thema

holle75

Da ich ein bestehendes DOIF umbaue (zweckentfremde) aber die komplexe erneute Implementation in den ganzen Rest umgehen möchte (und wieder Rückbau in ein paar Monaten), mal wieder eine unlogische Frage.

Was ist der beste Weg eine Bedingung IMMER wahr zu haben? ;)

Im Moment habe ich mir über

DOIF ([14:00:00-13:59:59]) ()

geholfen ....

Otto123

1 = wahr
0 = falsch
defmod d_immer DOIF (1) ()
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

holle75


holle75

Mmh, nach DEF save, bleibt das DOIF auf initialized stehen. Was habe ich übersehen?

Otto123

Du hast nach der Bedingung "immer" gefragt, so hat es natürlich keinen Trigger -> set ... checkall ;)

Ich nahm an, Du hast andere Trigger, sonst macht das Ganze ja irgendwie wenig Sinn?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Per

Was aber kein Trigger ist und nicht auslöst. Wenn man den Cmd direkt aufruft, ist es auch egal, weil da die Bedingungen nicht geprüft werden.
Irgendeinen Trigger ohne Bedingungen, also ohne Vergleich, wäre vllt sinnvoller.

holle75

#6
Zitat von: Otto123 am 12 August 2024, 12:47:15Du hast nach der Bedingung "immer" gefragt, so hat es natürlich keinen Trigger -> set ... checkall ;)

Ich nahm an, Du hast andere Trigger, sonst macht das Ganze ja irgendwie wenig Sinn?

Ja, Sinn macht es nicht. Ist ein Platzhalter der sehr verwoben anderweitig implementiert ist und wieder zurückgebaut wird. Im Moment muss er andere Zwecke erfüllen. Außerdem interessiert mich die unlogische Frage.

Ja, kein Trigger dachte ich mir,

Zitat von: Per am 12 August 2024, 12:47:59Irgendeinen Trigger ohne Bedingungen, also ohne Vergleich, wäre vllt sinnvoller.

Könnte auch platt ein notify oä nehmen, aber dann darf ich die ganzen Verknüpfungen bearbeiten. Viele ...

Ich glaube, dann bleib ich bei der "Zeitschaltuhr" ...

EDIT:
Mmh, auch nicht richtig lecker, gerade bemerkt, dann brauchs außerhalb der Triggerzeiten, zB bei Neustart auch noch nen zusätzlichen Trigger ....
Lustige Frage

holle75

Mir fällt kein allgegenwärtiger Trigger außer Sekunden ein ....  :)) ... das kann doch jetzt nicht ....

Otto123

ohne weitere Infos würde ich sagen: es wird Unfug  ;D

Vielleicht muss deine Skizze größer werden, wenn jemand mitdenken soll  ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

holle75

Jain, es ist Unfug, aber auch nicht wirklich.

"Big picture": DOIF schaltet Steckdosen im Hühnerstall. Bis anhin nach Sonnenstand und zusätzlichen Modifikation. Das ist mit ftui, Anwesenheit, Sonnenstand und zig anderen Dingen Verknüpft, geschaltet, nach cmds farbig in Anzeigen verwurschtelt, etc.

Im Moment und die nächsten 3 Monate muss diese Steckdose immer und unbedingt an sein. Auch nach Neustart, Stromausfall (Homematic Schalt-Relais fallen ab, fhem weiß es aber nicht weil mit USV weiterläuft)... Unbedingt, weil die Steckdose gerade den Elektrozaun befeuert und es sonst recht schnell weniger Hühner dank Füchsen hat.

Die Problematik ist saisonal und das DOIF wird später zurückgebaut.

Um "Steckdose an" möglichst IMMER zu gewährleisten, schaltet das DOIF im Moment mit repeatcmd halbstündig erneut cmd_1. Größter gap wäre halbe Stunde kein Elektrozaun.

Also, brauche "immer an" und wegen mal Stromausfall (Wechselrichter Überlast als blödes Beispiel, schaltet nach ner Minute wieder an), frequentes Wiederanschalten obwohl an.

Das wäre ein paar Buchstaben Code im DOIF ändern und happiness.... wenn es ein IMMER AN gibt ;)


holle75

#10
Aber ja, ich kanns auch einfach löschen und später wieder implementieren. Aber mich interessierte die Fragestellung.
Wobei, dieses frequente Wiederanschalten zur Sicherheit schon ganz angenehm umsetzbar ist.

Otto123

Zitat von: holle75 am 12 August 2024, 13:25:59Stromausfall (Homematic Schalt-Relais fallen ab,
Es gibt welche die lassen sich auf "Power on" programmieren.
Aber: Wenn Strom an der Steckdose weg und dann wieder da gibt es doch eine Status-Meldung "der Steckdose" an FHEM !? -> das wäre Dein Trigger:
Wenn Steckdose off dann schalte auf on :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Per

Wenn immer an, warum gibt es dann eine Schalterdose?

holle75

#13
Zitat von: Otto123 am 12 August 2024, 14:03:07Aber: Wenn Strom an der Steckdose weg und dann wieder da gibt es doch eine Status-Meldung "der Steckdose" an FHEM !?

Möchte man meinen, ist aber nicht so. Stromausfall -> Homematic WIRED (ja, vergessen zu erwähnen. Wird bei Funk anders sein?) Relais fällt ab, da aber gerade kein Strom, keine Info auf dem Bus, resp. Info geht verloren. fhem läuft weiter weil USV. Stati der Relais werden erst bei Neustart fhem wieder aktualisiert, resp. wenn du irgendwas schaltest ist zumindest dieses Relais wieder synchronisiert. Auch wird "Relais aus", wenn wieder Strom, nicht erneut gesendet. Aber das ist nur ein am Rande Problem.

Zitat von: Per am 12 August 2024, 14:10:20Wenn immer an, warum gibt es dann eine Schalterdose?

War ja nicht immer an und wird auch wieder nicht immer an sein. Immer an ist nur temporär.

Ich machs jetzt so

defmod ChickenCoopSteckdoseDOIF DOIF ([14:00:00-13:59:45]) (set Container_STECKDOSE_Innen_Chicken on) DOELSE (set Container_STECKDOSE_Innen_Chicken off)
attr ChickenCoopSteckdoseDOIF repeatcmd 1800:0

und setz noch ein Neustart checkall für das DOIF. Ja, cmd_2 bräuchte es nicht. Das war auch (und wird es wieder) alles mal deutlich komplexer. Trotzdem stimmt mein cmd_1 und cmd_2 (was nicht eintritt) in meiner Visualisierung und alle meine Verknüpfungen wenn dann wieder das alte Setup aktuell wird.

Trotzdem lustig, wo DOIF alles kann, dass es kein "immer an" gibt. Wobei, wer braucht sowas ;)

erdnar

Das hier
defmod ChickenCoopSteckdoseDOIF DOIF ([+00:01]) (set Container_STECKDOSE_Innen_Chicken on)
würde jetzt jede Minute einmal einschalten. Die Zeitspanne ist natürlich frei wählbar ;)

Otto123

Aber sicher bekommt doch FHEM eine Info. Strom weg? Strom wieder da? USV?
Dann kannst Du, bei Strom wieder da, den Status der Dose abfragen - wäre egal ob Deiner temporären Geschichte doch eine wichtige Sache?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

holle75

Zitat von: erdnar am 12 August 2024, 15:15:29würde jetzt jede Minute einmal einschalten. Die Zeitspanne ist natürlich frei wählbar ;)

ziemlich gute Idee. Zwei Fliegen mit einer Klappe.

Zitat von: Otto123 am 12 August 2024, 15:17:25Aber sicher bekommt doch FHEM eine Info. Strom weg? Strom wieder da? USV?
Dann kannst Du, bei Strom wieder da, den Status der Dose abfragen - wäre egal ob Deiner temporären Geschichte doch eine wichtige Sache?

Ja, die Info könnte ich auch verwursten. Auch eine gute Idee.

Aber den Intervall-Trigger von erdnar probier ich jetzt mal, weil das löst ganz simpel alles. Ohne repaetcmd, neustart checkall pipapo, etc.

Otto123

Zitat von: holle75 am 12 August 2024, 15:32:02weil das löst ganz simpel alles.
naja aber nur nach der Methode Dauerfeuer - bei HM wired ist es Dir vielleicht egal und bloß ein bisschen Signalstrom. Bei Funk muss man aufs Kontingent achten ;)

Wenn es deine Dosen wirklich nicht liefern (kenne HM wired nicht) dann finde ich die Status Abfrage nach "der Strom war weg" existentiell für die Heimautomatisierung.

Bei mir wissen die HM Aktoren nach einem Spannungsausfall die Position der Rollos auch nicht mehr und melden einfach 50 % - damit muss ich auch irgendwie umgehen ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

holle75

Ich feuer jetzt mal alle 30 Minuten. Das ist wenig dramatisch und löst das "Sicherheitsproblem Stromausfall Steckdose falscher Status". Und ja, RolladenAktoren haben auch bei WIRED das Problem ;)


"Strom weg" wird mir gemeldet .. jetzt könnte ich alle Aktoren abfragen. Ist dann aber doch ein bißchen komplizierter als alle 30 Minuten einen Event zu fabrizieren (der ja physisch nichts auslöst).

holle75

... wobei ich gar nicht direkt wüßte was der Befehl "Bitte einmal Status alle Schalter auf dem Bus" wäre. Du? Würde ich unabhängig der Steckdosen Geschichte mal einbauen wo du mich drauf gebracht hast.

Per

Ich verstehe das Problem oder die Aufgabe immer noch nicht.
Aber FILTER und TYPE könnte dir weiterhelfen.

holle75

Es ist auch verschwurbelt, Per, weil mein Ansatz nicht wirklich logisch ist. Das, weil ich einen temporären Platzhalter mit Funktion brauchte. Wobei wir jetzt ein bißchen abgewandert sind und die Frage ist, "wie Frage ich den Status von allen HM-Wired Aktoren mit einem Befehl ab"  ;D

Initial ging es um welche Bedingung drückt "immer" aus. Da hat erdnar  einen raffinierten Vorschlag gemacht der keinen zusätzlichen Trigger braucht und sofort funktioniert. Nicht "immer", macht aber was es soll. Das läuft jetzt erst mal so.

Danke an alle fürs Mitdenken.

Otto123

Zitat von: holle75 am 12 August 2024, 16:56:28... wobei ich gar nicht direkt wüßte was der Befehl "Bitte einmal Status alle Schalter auf dem Bus" wäre. Du? Würde ich unabhängig der Steckdosen Geschichte mal einbauen wo du mich drauf gebracht hast.
wie gesagt: ich habe keine HM wired.
Meine Aktoren haben den Befehl: set xxx statusRequest Bei den Rollo Aktoren besteht mMn nur die Möglichkeit, den Status definiert zu setzen. Da ist mir auch noch nix besseres eingefallen, aber meine Aktoren liefern einen powerOn Event:
defmod n_Rollo_powerOn notify Rollo.*:powerOn:.* set $NAME on
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Per

Kommt drauf an, wad man mit dem Ergebnis eill, anzeigen oder weiterverarbeiten, kann man mit einer DOIF Aggregatsfuntion arbeiten.

holle75

set xxx statusRequest finde ich bei HMW nicht beim Device und auch nicht direkt bei den Aktoren/Sensoren. Schön wärs gewesen .... aber dazu werde ich noch ein bißchen recherchieren. Vielleicht gibts einen ähnlichen Befehl.

frank

Zitat von: Otto123 am 12 August 2024, 20:22:52
Zitat von: holle75 am 12 August 2024, 16:56:28... wobei ich gar nicht direkt wüßte was der Befehl "Bitte einmal Status alle Schalter auf dem Bus" wäre. Du? Würde ich unabhängig der Steckdosen Geschichte mal einbauen wo du mich drauf gebracht hast.
wie gesagt: ich habe keine HM wired.
Meine Aktoren haben den Befehl:
set xxx statusRequest Bei den Rollo Aktoren besteht mMn nur die Möglichkeit, den Status definiert zu setzen. Da ist mir auch noch nix besseres eingefallen, aber meine Aktoren liefern einen powerOn Event:
defmod n_Rollo_powerOn notify Rollo.*:powerOn:.* set $NAME on

bei cul_hm steht im reading motor "ERR:xx", wenn die position nicht mehr syncron ist.
das meldet der aktor solange bis das rollo einmal in den anschlag gefahren ist.
da braucht es eigentlich kein cmd statusrequest, ein userreading kann es direkt anzeigen.
siehe beispiel: https://forum.fhem.de/index.php?msg=1302820

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

holle75

Zitat von: Per am 12 August 2024, 17:39:59Ich verstehe das Problem oder die Aufgabe immer noch nicht.
Aber FILTER und TYPE könnte dir weiterhelfen.

JETZT verstehe ICH, was du gemeint hast.

https://forum.fhem.de/index.php?topic=138933.msg1318232#msg1318232

Per