FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: MAC66666 am 28 September 2016, 14:38:43

Titel: [gelöst]Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: MAC66666 am 28 September 2016, 14:38:43
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! ;-)
Titel: Antw:Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: MAC66666 am 28 September 2016, 20:49:33
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....
Titel: Antw:Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: MAC66666 am 28 September 2016, 20:52:23
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?


Titel: Antw:Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: MAC66666 am 28 September 2016, 22:45:26
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?
Titel: Antw:Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: mahowi am 28 September 2016, 22:58:58
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.
Titel: Antw:Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: MAC66666 am 28 September 2016, 23:16:19
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?

Titel: Antw:Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: MAC66666 am 29 September 2016, 09:55:49
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?
Titel: Antw:Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: mahowi am 29 September 2016, 10:10:11
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;
}
Titel: Antw:Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: MAC66666 am 29 September 2016, 10:20:43
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?
Titel: Antw:[gelöst]Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: MAC66666 am 29 September 2016, 10:27:40
Also, falls es noch mal jemand braucht:
Lösung:

define MAXzuFHT notify MAX-Thermostat:valveposition.* set FHT-8V-Thermostat valve $EVTPART1;
Titel: Antw:[gelöst]Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: mahowi am 29 September 2016, 12:02:01
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.  :)
Titel: Antw:[gelöst]Ventilposition von MAX-Thermostat an FHT-8V senden
Beitrag von: MAC66666 am 29 September 2016, 13:15:26
Toll, jetzt ist mir der FHT mit lautem Piepen weggeflogen, als ich einen zweiten anlernen wollte ;-) Egal, das ist lösbar...

Danke noch mal!