Gerät schalten abhängig von Rollo Position

Begonnen von bajogger, 11 Januar 2024, 23:14:30

Vorheriges Thema - Nächstes Thema

bajogger

Möchte ein Licht schalten sobald ein Rolladen eine bestimmte Position hat

Das Gerät "WohnZimLight" soll on gesetzt werden sobald der Rolladen "WohnZimRol" "pct 100" hat

Kann mir jemand mit dem entsprechenden Code, vermutlich ein notify, helfen?
FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

TomLee

#1
Hallo,
ZitatKann mir jemand mit dem entsprechenden Code, vermutlich ein notify, helfen?

ZitatVorgehensweise beim Anlegen eines Gerätes
  •     Event-Zeile komplett markieren
  •     den Knopf Create/Modify Device betätigen
  •     ein Gerätemodul auswählen
  •     Create auswählen
  •     die gewünschte Form des Events auswählen
  •     den Knopf OK betätigen

Danach öffnet sich die Detailansicht des angelegten Gerätes, dort kann die Definition weiter bearbeitet werden.

  • Eventmonitor öffnen
  • WohnZimRol auf 100 fahren
  • die Event-Zeile (die mit der 100) komplett markieren
  • den Button Create/Modify Device betätigen
  • notify in dem Dialogfeld auswählen und mit OK bestätigen
  • in der Detailansicht des erstellten notify auf DEF tippen
  • die zwei geschweiften Klammern durch set WohnZimLight on ersetzen



Alternativ zum notify kannst auch ein userreadings missbrauchen:
attr WohnZimRol  userReadings bulb:pct:.100 {fhem('set WohnZimLight on');return 'done'}




Beta-User

@bajogger:
Bitte in den Anfängerbereich verschieben, das ist kein fertiger Code...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

bajogger

#3
Vielen Dank an TomLee hat Super funktioniert. Vorgehensweise wird mir noch oft helfen. Habe ich trotz Nutzung von FHEM seit vielen Jahren nicht gekannt.

Hat mir wieder gezeigt wie kleine Unterschiede ein großes Problem machen.

WohnZimRoll:pct.100 set WohnZimLight on  # funktioniert

Hatte ich so, nur ohne den Punkt zwischen pct und 100 zigmal probiert. Wird halt als Leerzeichen im state dargestellt

Danke für die Hilfe

Noch eine Frage:
Die exakte Position pct.100 durch >pct.80 ersetzen? Wie fügt man das ins notify ein?

FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

rabehd

Zitat von: bajogger am 12 Januar 2024, 09:59:42Noch eine Frage:
Die exakte Position pct.100 durch >pct.80 ersetzen? Wie fügt man das ins notify ein?
In dem man in die Hilfe oder das Wiki schaut.
https://wiki.fhem.de/wiki/Notify
Auch funktionierende Lösungen kann man hinterfragen.

bajogger

Mache ich eigentlich immer. Auch schon vor deinem Hinweis. Versuche wirklich zu verstehen. Nur wenn ich nicht weiterkomme -- so wie hier

Ausgangssituation
WohnZimRoll:pct.100 set WohnZimLight on Exakte Position pct.100 schaltet Licht

Im Wiki gefunden
dimmer:pct:.(100|7[6-9]|[89][0-9]) → reagiert, wenn pct einen Wert über 75 annimmt.
Versuch zu übertragen
WohnZimRoll:pct:.(100|7[6-9]|[89][0-9]) set WohnZimLight on
Funktioniert "wie erwartet" nicht. Unabhängig das ich den Zahlenblock in der Klammer schon nicht verstehe

FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

rabehd

Das kann hier noch eine Grundsatzdiskussion werden.
Ich würde auf alle events von pct reagieren und in notify den Wert abfragen und nur auf den gewünschten Bereich reagieren (IF). Vielleicht nicht perfekt aus Sicht der Programmierung, aber zumindest lesbarer.
Damit wären wir dann auch beim DOIF. Das wäre mir hier am liebsten.

Für Deine Lösung, da würde ich mich rantasten.
dimmer:pct:.(100|7[6-9]|[89][0-9])
dimmer:pct:.(7[6-9])
dimmer:pct:.([89][0-9])
dimmer:pct:.(7[6-9]|[89][0-9])

...und so weiter. Jede Version muss ja für sich funktionieren. Zum Testen reicht ja auch das Schreiben ins Log.
Auch funktionierende Lösungen kann man hinterfragen.

frank

wenn das funktioniert wie geschrieben:
WohnZimRoll:pct.100 set WohnZimLight on
sollte folgendes auch funktionieren:
WohnZimRoll:pct.(100|7[6-9]|[89][0-9]) set WohnZimLight on
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

rabehd

Auch funktionierende Lösungen kann man hinterfragen.

frank

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

TomLee

Zitat von: frank am 12 Januar 2024, 16:04:43
Zitat von: rabehd am 12 Januar 2024, 15:55:53Er sagt nein
nein.
mein bsp hat ein doppelpunkt weniger.

Hast das auch ausprobiert ?

Bei mir klappt das ohne Doppelpunkt nicht, aber mit, wie im Wiki gezeigt, schon:

defmod pct2dim_notify_1 notify pct2dim:pct:.(100|7[6-9]|[89][0-9]) {Debug $EVTPART1}

bajogger

#11
WohnZimRoll:pct.(100|7[6-9]|[89][0-9]) set WohnZimLight on
Funktioniert tatsächlich. War wirklich der Doppelpunkt.
dimmer:pct:.(100|7[6-9]|[89][0-9]) → reagiert, wenn pct einen Wert über 75 annimmt.
Stand so im Wiki

Danke für eure Mühe

Wo ist denn der Zahlenblock    (100|7[6-9]|[89][0-9])    erklärt ?
FHEM auf Raspberry Pi, CUL 433 und CUL 866,
Diverse IT Empfänger für Rolladen und Licht, IPCam Instar 2905

TomLee

Dann nutzt Ihr ein anderes FHEM wie ich  ;D

Bei mir mag das so nicht:

defmod pct2dim dummy
attr pct2dim readingList pct
attr pct2dim setList pct:slider,0,1,100 on off

defmod pct2dim_notify_1 notify pct2dim:pct.(100|7[6-9]|[89][0-9]) {fhem('set OG_Echo_Wohnzimmer speak bla')}

frank

bajogger hat scheinbar ein device, wo im reading state der wert "pct 100" kommt.

und kein reading pct.
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

TomLee

Ok, dann komm ich jetzt wieder mit ...

Ich war deswegen:

ZitatDas Gerät "WohnZimLight" soll on gesetzt werden sobald der Rolladen "WohnZimRol" "pct 100" hat
von einem Reading pct ausgegangen.

Popcorn für nix, wäre halt mal ein list gezeigt worden.