Hi, nachdem ich mir FHEM mal im Januar angeschaut und verworfen hatte, bin ich jetzt wieder dran, da ich auch andere Dinge mit FHEM steuere... Immerhin hab ich meine Rollos per Twilight gesteuert bekommen mit null Ahnung. Nur jetzt brauche ich einen Schubser...
Mit den Befehlen habe ich noch so meine Grundverständnisprobleme...
Im Grundegenommen will ich was ganz einfaches:
TWZli=Max Thermostat (Per umgeflashtem MaxCube direkt per CULMAX angebunden)
TWZre=FHT Thermostat (per umgeflashtem MaxCube im SlowRF Modus angebunden)
Der Wert von "ValvePosition" (1-100) vom TWZli soll als Wert "Valve" an TWZre gesendet werden. Möglichst on-the-fly wenn eine Änderung vorliegt (bzw. FHEM eine mitbekommt) oder in Intervallen, fals ich an die 1% Regelung komme...
Das war's schon, fast peinlich danach zu fragen... Danke! ;-)
Habe das hier gefunden, leider gings da irgendwann nicht weiter:
https://forum.fhem.de/index.php/topic,30140.msg264865.html#msg264865
ich hab ein notify angelegt wie dort beschrieben, es wurde der Wert richtig angezeigt. Dann habe ich es versucht umzubauen:
TWZli:valveposition.* set TWZre valve $EVTPART1
(in verschiedenen Varianten)
aber ich bekam das:
2016.09.28 20:48:52 3: Change_TWZ return value: Set valve needs a numeric parameter between 0 and 100
Hmmmm....
Wenn ich nur
TWZli:valveposition.* set TWZre $EVTPART1
eingebe, bekomme ich
2016.09.28 20:59:59 3: Change_TWZ return value: Unknown argument 0
0 ist doch ne Null, wqarum nimmt er denn dann
TWZli:valveposition.* set TWZre valve $EVTPART1
nicht?
Hier noch mal das Test-Auswert-Notify aus dem Link, an mich angepasst, funktioniert:
TWZli.valveposition.* {
Log(3,"Event: $EVENT");
Log(3,"Teilevent: $EVTPART1");
}
was mir an Raffung im Kopp fehlt: Was bedeutet das "Log(3" usw? für was ist Log? Hab irgendwas bzgl. Perl und Logarythmus gelesen, aber werde nicht schlau draus... Hat das mit meinem Problem zu tun?
Das hat nix mit Logarithmen zu tun. :D
Log() schreibt Einträge ins Logfile, die Zahl gibt den Loglevel an. Standardmäßig ist der Loglevel auf 3 eingestellt (verbose 3). Dein Notify schreibt also $EVENT und $EVTPART1 mit.
Oh mann, danke... ich dachte die ganze Zeit, das muss irgendwas mit der Ausgabe im Logfile zu tun haben, so a la print oder echo oder so... Aber an die Verbindung Log zu Logfile hab ich überhaupt nicht gedacht, ich war wieder viel zu kompliziert unterwegs, Totalausfall quasi...
ja, ist spät ;-)
dann zurück zu meinem Problem: jemand ne Idee? Bei anderer Ventilposition bekomme ich auch die Nachricht, dass es kein numerischer Wert wäre... aber es wird eine Zahl ausgespuckt, verdammt...
Oder ist die Zahl vieleicht ein String, also Text, und er kann deswegen nichts damit Anfangen?
Nee, das ist es auch nicht:
Hatte mal kurz direkt einen Wert hinterlegt:
TWZli:valveposition.* set TWZre valve 50
Effekt:
2016.09.29 10:03:24 3: Change_TWZ return value: Set valve needs a numeric parameter between 0 and 100
aber
set TWZre valve 50
eingegeben funktioniert... Wo hab ich meinen Fehler?
Kannst Du mal das komplette Notify "Change_TWZ" anhängen? Sollte eigentlich so ähnlich aussehen:
define Change_TWZ notify TWZli:valveposition.* {
Log(3,"Event: $EVENT");
Log(3,"Teilevent: $EVTPART1");
set TWZre valve $EVTPART1;
}
Ich habs, es geht!
danke, auch wenn Du nicht weisst, dass Du mir geholfen hast, hast Du es gerade sehr! Dadurch, dass Du noch mal ein komplettes "define" geschrieben hast, hab ich noch mal was ausprobiert...
also, mein define war:
define Change_TWZ notify TWZli:valveposition.* set TWZre valve $EVTPART1
ging nicht... dann hab ich ein Semikolon drangehängt, geht!!!!!
War mir so nicht klar... Warum?
Also, falls es noch mal jemand braucht:
Lösung:
define MAXzuFHT notify MAX-Thermostat:valveposition.* set FHT-8V-Thermostat valve $EVTPART1;
Ja, die Sache mit den Semikolons ist immer so eine Sache. Ehrlich gesagt weiß ich auch nicht genau, wann ein einfaches, doppeltes oder gar kein Semikolon gesetzt wird.
Laut Anleitung im Wiki (http://www.fhemwiki.de/wiki/Erste_Schritte_in_fhem#Bei_Event_ausf.C3.BChren_-_notify) bräuchte man hier keins. Im Normalfall wird ein Semikolon als Abschluß eines Perl-Befehls gesetzt, wenn danach noch weitere kommen.
Aber schön, wenn es jetzt funktioniert. :)
Toll, jetzt ist mir der FHT mit lautem Piepen weggeflogen, als ich einen zweiten anlernen wollte ;-) Egal, das ist lösbar...
Danke noch mal!