FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: michisa86888 am 05 März 2022, 07:40:58

Titel: zwei gleiche DOIF zu einem DOIF?
Beitrag von: michisa86888 am 05 März 2022, 07:40:58
Hallo, ich würde gerne meine 2 DOIF zu einem DOIF zusammenfassen bekomme es aber irgendwie nicht richtig hin.
Habe das ganze probiert mit "or" zu verbinden, aber das eine DEVICE hebt das andere gleich wieder auf?  :o

DOIF1:
([Shelly_Kappsaege:relay_0_power] > 2.50)(set Sonoff_Absauganlage.* on)
DOELSEIF
([Shelly_Kappsaege:relay_0_power] < 5.00) (set Sonoff_Absauganlage.* off)
/code]
DOIF2:
[code]([Shelly_Tischkreissaege:relay_0_power] > 2.50)(set Sonoff_Absauganlage.* on)
DOELSEIF
([Shelly_Tischkreissaege:relay_0_power] < 5.00) (set Sonoff_Absauganlage.* off)


Für die Profis sicherlich kein Problem...
Titel: Antw:zwei gleiche DOIF zu einem DOIF?
Beitrag von: frank am 05 März 2022, 08:37:15
ich würde einen shelly plus des zugehörigen doifs "einsparen" und beide werkzeuge zusammen über einen shelly versorgen.
Titel: Antw:zwei gleiche DOIF zu einem DOIF?
Beitrag von: MadMax-FHEM am 05 März 2022, 08:40:53
Die beiden DOIF sind doch jetzt schon "komisch"...

Es wird getriggert und sobald größer 2,5 wird eingeschaltet...
Es wird doch nur unter 2,5 ausgeschaltet weil Zweig 2 (so ich DOIF verstehe) doch erst "geprüft" wird, wenn Zweig 1 nicht zutrifft, also unter 2,5...
Da kleiner 2,5 auch kleiner 5 ist - > aus

Also einfach ein DOELSE mit off macht doch dasselbe?

EDIT: mit OR oder auch AND in einer Zeile/Abfrage beide triggernden Devices zu "verwurschteln" wird (verm.) nicht gehen (hast du ja bereits gemerkt ;) ). Weil du ja nicht willst, wenn das eine ODER das andere Device über 2,5 ist, dass ja welches Device soll nun geschalten werden? Beide ein -> Quatsch / Gleiches bei AND. Weil dann würde ja nur geschalten werden, wenn BEIDE Devices einen bestimmten Zustand haben -> willst du ja nicht. D.h. entweder bei 2 DOIF bleiben (warum ist/wäre das so schlimm?) oder mehrere Zweige in einem DOIF (was von 2 DOIF nicht so weit weg ist ;) )... [OT]Ich würde das ja mit einem notify auf beide Devices machen und dann in einer Perl Sub mit if/else aber da auch jeweils ein if/else pro triggerndem Device ;) [/OT]

EDIT: ja klar, das zu schaltende Gerät ist ja immer dasselbe, eieiei... (auf dem Handy sollte man keine DOIF-Fragen beantworten :D  )

Gruß, Joachim
Titel: Antw:zwei gleiche DOIF zu einem DOIF?
Beitrag von: Sany am 05 März 2022, 09:04:44
von der Logik her:

ZitatDOIF wenn Kappsäge:power > 50 ODER Kreissäge:power > 50
                  set Absauganlage ON
DOELSEIF wenn Kappsäge:power < 10 UND Kreissäge:power < 10
                  set Absauganlage OFF

Die Schwellenwerte habe ich jetzt einfach mal so gewählt. Sowohl die Kappsäge als auch die Kreissäge werden wohl immer eine verhältnismäßig hohe Wattzahl "brauchen", wenn sie eingeschaltet sind, ebenso sind sie wohl ziemlich sicher aus, wenn nur wenige Watt verbraucht werden. Das kannst Du ja mittels Shelly beobachten. Also falls die Geräte drehzahlmäßig verstellbar sind dann schau nach, was sie brauchen wenn eingeschaltet (ohne Motor), Motor eingeschaltet und ausgeschaltet. Diese Werte dann großzügig in die Schwellen einbauen. Beispielhaft: die Säge nimmt eingeschaltet (ohne Motor) 2 W, mit Motor in der kleinsten Stellung z.B. 150 W, dann ist z.B. >100W sehr sicher ein EIN und < 10W sehr sicher ein AUS, jeweils was den Motor, also die laufende Säge angeht. Das willst Du vermutlich.

Viel Erfolg!


Sany
Titel: Antw:zwei gleiche DOIF zu einem DOIF?
Beitrag von: Damian am 05 März 2022, 09:57:05
Da es sich offenbar um dieselbe Absauganlage für beide Maschinen handelt, würde ich die Summe der Leistungsaufnahmen der beiden Geräte abfragen.

z. B.

([Kappsäge:power] + [Kreissäge:power]) > 2.5


Noch eleganter kann man so etwas über Aggregationsfunktion lösen. Durch eine geschickte Namenswahl der Geräte, lässt sich eine Abfrage für beliebig viele Verbraucher realisieren:

z. B.

([#sum:"säge$":power] > 2.5)
Titel: Antw:zwei gleiche DOIF zu einem DOIF?
Beitrag von: michisa86888 am 05 März 2022, 21:09:13
Zitat von: Damian am 05 März 2022, 09:57:05
Da es sich offenbar um dieselbe Absauganlage für beide Maschinen handelt, würde ich die Summe der Leistungsaufnahmen der beiden Geräte abfragen.

z. B.

([Kappsäge:power] + [Kreissäge:power]) > 2.5


Noch eleganter kann man so etwas über Aggregationsfunktion lösen. Durch eine geschickte Namenswahl der Geräte, lässt sich eine Abfrage für beliebig viele Verbraucher realisieren:

z. B.

([#sum:"säge$":power] > 2.5)
Okay dann versuche ich es mal mit Vorschlag eins.
Vorschlag zwei würden dann alle Geräte die "säge" im Gerätenamen haben reagieren? Müssten dann auch alle das Reading "Power" haben bzw. in meinem Fall "relay_0_power"?
Titel: Antw:zwei gleiche DOIF zu einem DOIF?
Beitrag von: Damian am 05 März 2022, 21:54:34
Zitat von: michisa86888 am 05 März 2022, 21:09:13
Okay dann versuche ich es mal mit Vorschlag eins.
Vorschlag zwei würden dann alle Geräte die "säge" im Gerätenamen haben reagieren? Müssten dann auch alle das Reading "Power" haben bzw. in meinem Fall "relay_0_power"?
Es werden alle addiert, die "säge" am Ende des Devicenamens besitzen und das Reading "power" haben.