Brauche dringend Hilfe - finde den Fehler nicht!

Begonnen von Charlieman, 17 Februar 2016, 09:59:33

Vorheriges Thema - Nächstes Thema

Charlieman

Hallo

ich hab FHEM schon ein bisschen im Einsatz und hatte mich hier auch mal im Forum registriert - wohl zu lange her. Meinen Account gab's nicht mehr
Jetzt mal zu meinem Automatisierung-Versuch. Ich komme aber nicht weiter. Ich schätze mal, der Fehler ist simpel; aber ich finde ihn einfach nicht.

Zunächst mal zum meinem Versuch. Eingesetztes Equipment Homematic. Startpunkt ist mein Bad. Dort hab ich einen HM-SEC-RHS threeStateSensor am Fenster und einen HM-LC-SW1-PL2 switch, der mir einen Dehumidifier (Entfeuchter) steuern soll. Soweit, so gut. Zeitsteuerung über AT usw. funktioniert bereits gut...
Nun wollte ich eine Schaltung erstellen, die beim Öffnen des Fensters den Dehumidifier abschaltet. Macht ja keinen Sinn, dass der dann läuft. Ich hatte mir das so vorgestellt:

#Dummy, um zu erkennen, ob Fenster geöffnet wurde
define Fenster.offen dummy
#Dummy speichert vorher-Status vom Entfeuchter
define DeHumi.Status dummy
#Bei Öffnen wird aktueller Status-Wert gespeichert in Dummy
define DeHumi.aus notify Lueften.HM.Bad.RHS.Fenster:open {my $CurrentStatus=ReadingsVal ("Schalten.HM.Bad.SW.Dehumidifier","state",0) {fhem ("set Schalten.HM.Bad.SW.Dehumidifier off;; set Fenster.offen on;; set DeHumi.Status $CurrentStatus")} }
#Bei Schließen wird alter Wert wieder gesetzt, Zustands-Dummy wieder aus, nur wenn Zustand bisher offen
define DeHumi.wie.vorher notify Lueften.HM.Bad.RHS.Fenster:closed {my $FormerStatus=Value("DeHumi.Status") if (Value("Fenster.offen") eq "on") {fhem ("set Schalten.HM.Bad.SW.Dehumidifier $FormerStatus;; set Fenster.offen off")} }

Aber ich bekomme nur eine Fehlermeldung:
2016.02.17 06:45:59 3: DeHumi.aus return value: syntax error at (eval 1156) line 1, near ") {"
syntax error at (eval 1156) line 1, near "} }"
2016.02.17 06:45:59 3: DeHumi.aus return value: syntax error at (eval 1157) line 1, near ") {"
syntax error at (eval 1157) line 1, near "} }"

Ich bin alles mehrfach durchgegangen. Auch die Klammern-Syntax mit dem Wiki. Ich hab's auseinandergenommen und einzeln funktioniert's auch.

ICH FINDE einfach DEN FEHLER nicht! ggf. ist's für einen Profi ein Klax, aber ich bin verzweifelt.

Danke für jeglich Unterstützung.

Gruß, Charlieman

franky08

#1
Hallo, poste den Code Abschnitt bitte mal in Code Tag´s, so ist das ziemlich unübersichtlich.

denke es liegt am fehlenden Leerzeichen:
{my $CurrentStatus=ReadingsVal...
mach daraus mal
{ my $CurrentStatus=ReadingsVal...

oder du ziehst die 2. schließende Klammer ran.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

CoolTux

gib mal bitte ein list von DeHumi.aus ich Antworte nicht auf Code aus der cfg. Ausserdem wäre es schön wenn Code Tags verwendet würden.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Puschel74

Sorry, ich scheitere bereits daran Code und Text zu trennen.
Tags würden alles leserlicher machen - siehe mein angepinnter Beitrag hier im Anfängerbereich.
Ein kleines bischen Unterstützung darf man sich durch den Hilfesuchenden doch erwarten  8)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Hans Franz

define DeHumi.aus notify Lueften.HM.Bad.RHS.Fenster:open {my $CurrentStatus=ReadingsVal("Schalten.HM.Bad.SW.Dehumidifier","state",0);;fhem("set Schalten.HM.Bad.SW.Dehumidifier off;; set Fenster.offen on;; set DeHumi.Status $CurrentStatus")}

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Charlieman

DANKE Hans!!!

Das funzt! Also der DeHumi wird ausgeschaltet.

Eine Kleinigkeit. Deine Zeile meldet den DeHumi.Status als OFF. Das verstehe ich jetzt nicht, weil es ja eigentlich der $CurrentStatus sein sollte.
Also der vorherige Status des Entfeuchters und der war ON. Wie kann ich prüfen, weshalb das so ist?

Gruß, Charlieman

ckaytwo

Kleiner tip. Google mal nach dem internen editor für fhem.
Ich hatte selber auch immer schwierigkeiten. Oft ist es nur ein fehlender zeilenumbruch am ende...
Bin auch kein Programmierer, und da hilft der editor doch sehr.

Gesendet von meinem GT-I9505 mit Tapatalk


CoolTux

Oder noch viel besser. Bearbeite einfach sämtliche Devices nicht in der fhem.cfg sondern über die entsprechende DEF. Detailansicht für das Gerät und dann da auf DEF klicken




Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net