Userreading mehrer readings ein Status

Begonnen von Freee84neu, 05 Juni 2020, 18:39:06

Vorheriges Thema - Nächstes Thema

Otto123

2020-06-06 23:42:36 MQTT2_DEVICE Leinwand StopDas meinte ich: state: fehlt normalerweise.
Beim notify gibt es addStateEvent dafür.

Den trigger einfach ändern?
statePosition:((POWER3|POWER4):.ON|Stop)

Gruß Otto
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

amenomade

Ich würde eher einfach die Reihenfolge von den "if" Bedingungen / return ändern.
Weil irgendwie "Stop" Vorrang hat
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Freee84neu

Sollte es nicht mit dem userreadings klappen, werde ich es einfach so lassen. Ist schon OK so. Das andere wäre ein i-Tüpfel 😉.
Mit der Reihenfolge wird wohl nicht klappen denn das ,,state/State" kommt immer vor den POWER Readings.

Was ich nochmal schauen könnte ob ich bei den Return 1&2 noch das State mit reinbekomme. Nach dem Motto wenn POWER3 ON und State nicht Stop. Aber das muss ich mir in Ruhe anschauen und mal ein paar Beispiele finden.😂😉

Freee84neu

So wie hier in etwas

State { ReadingsVal("Leinwand","state",0) }, statePosition:(((POWER3|POWER4):.ON)|State:.Stop) {if((ReadingsVal("Leinwand","POWER3","") eq "ON") and (ReadingsVal("Leinwand","State","") ne "Stop")) {return 1} if ((ReadingsVal("Leinwand","POWER4","") eq "ON") and (ReadingsVal("Leinwand","State","") ne "Stop")) {return 2} if (ReadingVal("Leinwand","State","") eq "Stop") {return 3}}

Aber jetzt komm ich eine Fehler Meldung wenn ich Stop drücke.

Error evaluating Leinwand userReading statePosition: Undefined subroutine &main::ReadingVal called at (eval 45263) line 1.


Otto123

Meistens hat die Fehlermeldung Recht :)
ReadingVal  da fehlt ein s -> ReadingsVal - beim letzten Eintrag in deinem Code
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

Freee84neu

🙄🙄😤😤😤🤨🤨🤨

Ich hab da bestimmt 5mal drüber gesehen. Aber dieses S ist mir nicht aufgefallen...

Genau so klappt es super vielen Danke

State { ReadingsVal("Leinwand","state",0) }, statePosition:(POWER3|POWER4):.ON|State:.Stop {if (ReadingsVal("Leinwand","POWER3","") eq "ON" && ReadingsVal("Leinwand","State","") ne "Stop") {return 1} if (ReadingsVal("Leinwand","POWER4","") eq "ON" && ReadingsVal("Leinwand","State","") ne "Stop") {return 2} if (ReadingsVal("Leinwand","State","") eq "Stop") {return 3}}

Beta-User

Nur als Idee: Schon mal drüber nachgedacht, die Shutter-Funktion an dem Tasmota-ESP zu aktivieren?

Kann aber sein, dass das nur geht, wenn die ersten beiden Relais dafür hergenommen werden (das attrTemplate geht jedenfalls dann nicht 1:1, aber das dürfte für nur ein Gerät auch leicht manuell anzupassen sein).
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

Freee84neu

#22
Hallo

Shutter-Funktion davon hab ich noch nix gehört. Müsste ich erstmal nachschauen was das genau ist ...🙂🙈

Also ich habe jetzt alles am laufen. Auch über HomeKit hier mal ein Auszug von meinem Device

Zitat
attr Leinwand  genericDeviceType blind

attr Leinwand homebridgeMapping clear CurrentPosition=Homebridgeposition,minValue=0,maxValue=100,minStep=50 TargetPosition=Homebridgeposition,minValue=0,maxValue=100,minStep=50,cmds=0:on4;;50:Stop;;100:on3

attr Leinwand userReadings State { ReadingsVal("$NAME","state",0) }, statePosition:(POWER3|POWER4):.ON|State:.Stop {if (ReadingsVal("$NAME","POWER3","") eq "ON" && ReadingsVal("$NAME","State","") ne "Stop") {return 1} if (ReadingsVal("$NAME","POWER4","") eq "ON" && ReadingsVal("$NAME","State","") ne "Stop") {return 2} if (ReadingsVal("$NAME","State","") eq "Stop") {return 3}}, Homebridgeposition {if (ReadingsVal($NAME,"statePosition","") eq "1") {return 100} if (ReadingsVal($NAME,"statePosition","") eq "2") {return 0} if (ReadingsVal($NAME,"statePosition","") eq "3") {return 50}}


Vielen Dank an alle die geholfen haben.