Hauptmenü

Syntax bei if...else

Begonnen von theotherhalf, 30 Dezember 2018, 18:21:20

Vorheriges Thema - Nächstes Thema

theotherhalf

Ich möchte gerne mit folgendem Kommando einen Wert aus FHEM "on" oder "off" in die CCU senden und das ganze abhängig vom Status nach "1" oder "0" konvertieren.

define Status_Umwaelzpumpe_Therme_zur_HomematicCCU_Systemvariable at +*00:02 { if(ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","") eq "on" ) { fhem("set CCU var Status_Umwaelzpumpe_Therme 1") } else { fhem("set CCU var Status_Umwaelzpumpe_Therme 0") }}

Leider wird nur eine 0 gesendet, unabängig vom Status der Pumpe. Ist die Abfrage "eq" so korrekt formuliert?
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Otto123

Hi,

stimmt denn das Reading?
Zitat(ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme" ...

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

theotherhalf


Ja, das Reading stimmt so, es hat zweimal den gleichen Namen.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Otto123

Dann zeig mal bitte ein list Umwaelzpumpe_Therme
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

theotherhalf

Nach dem selben Schema sende ich ohne Probleme weitere Variablen, allerdings alles Zahlenwerte.
Dies ist der erste String.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

theotherhalf

Internals:
   DEF        bai00.class
   IODev      EBUS2
   NAME       Umwaelzpumpe_Therme
   NR         151
   STATE      Umwaelzpumpe_Therme off


   TYPE       ECMDDevice
   READINGS:
     2018-12-30 18:30:14   Umwaelzpumpe_Therme off


     2018-12-30 18:30:14   state           Umwaelzpumpe_Therme off


   fhem:
     classname  bai00.class
     cache:
       specials:
         %NAME      Umwaelzpumpe_Therme
         %TYPE      ECMDDevice
Attributes:
   IODev      EBUS2
   group      Vaillant
   icon       sani_supply_temp
   room       Vaillant
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Otto123

Du sendest eine Zahl  :-X Du fragst einen String ab  ;)
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

theotherhalf

Ja, die Abfrage ist on/off, da das Reading so ist.
Ich möchte aber zur CCU 1 oder 0 senden, da ich dies in einer Grafik weiter verwenden kann.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Otto123

Ich sehe keinen Fehler.

Probiere doch den Ausführungsteil einfach in der FHEM Kommandozeile, beim entsprechenden Status des readings
{ if(ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","") eq "on" ) { fhem("set CCU var Status_Umwaelzpumpe_Therme 1") } else { fhem("set CCU var Status_Umwaelzpumpe_Therme 0") }}
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

theotherhalf

habe ihm gerade mal bei "else" auch eine 1 editiert. Die wird dann auch zur CCU geschrieben, ich kann es auf der CCU Seite sehen.
Irgendwie gefällt ihm die on/off Abfrage nicht so recht, er sieht die als falsch an un sendet über "else" die ganze Zeit.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Otto123

#10
Da frage doch in der Kommandozeile den Wert ab und schau ob er stimmt, bisher war er ja off und nicht on  ::){ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","")}
Du kannst auch den Test testen:
{ if(ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","") eq "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

theotherhalf

Zitat von: Otto123 am 30 Dezember 2018, 18:39:39
Da frage doch in der Kommandozeile den Wert ab und schau ob er stimmt, bisher war er ja off und nicht on  ::){ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","")}
Du kannst auch den Test testen:
{ if(ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","") eq "on" )}

Die 1. Abfrage ergibt off, muss da warten bis die Pumpe wieder läuft.

Die zweite Abfrage ergibt einen Syntax Fehler:

syntax error at (eval 2047) line 1, at EOF
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

Otto123

Ja ok, da fehlte natürlich was  :-[
{ if(ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","") eq "on" ){"wahr"}else{"falsch"}}
oder die Kehrseite um die Wartezeit zu überrücken
{ if(ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","") eq "off" ){"wahr"}else{"falsch"}}
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

theotherhalf

jetzt läuft die Pumpe und ich bekomme auch ein "on" wenn ich
{ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","")}

eingebe

Gebe ich die vollständige Zeile ein:
{ if(ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","") eq "on" ) { fhem("set CCU var Status_Umwaelzpumpe_Therme 1") } else { fhem("set CCU var Status_Umwaelzpumpe_Therme 0") }}
kommt in der CCU nur eine "0" an.
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

theotherhalf

und wenn ich:
{ if(ReadingsVal("Umwaelzpumpe_Therme","Umwaelzpumpe_Therme","") eq "off" ) { fhem("set CCU var Status_Umwaelzpumpe_Therme 1") } else { fhem("set CCU var Status_Umwaelzpumpe_Therme 0") }}

eingebe, kommt auch eine 0.. Ihm gefällt die Abfrage wohl nicht, springt immer zu "else"
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung