Wandthermostat Ist Temperatur an Homematic senden :)???

Begonnen von schmello, 08 September 2017, 19:03:06

Vorheriges Thema - Nächstes Thema

CoolTux

Zitat von: schmello am 11 September 2017, 13:23:34
Mit $EVTPART1 wird nur die Zahl gespeichert... klasse...
Also steht die zahl bei $EVTPARTx für die einzelnen Wörter?
Wenn dort - Temerature 19.7 Celsius - stehen würde... und ich möchte nur das Celsius in den Dummy schreiben... müsste ich $EVTPART3 verwenden ?

Fast. Wir beginnen bei 0 zu zählen. Also dann $EVTPART2
Entscheidend ist das die Trennung immer per Leerzeichen erfolgt. Das ist quasi das Trennungszeichen für die split Funktion die da intern rennt.
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

CoolTux

Zitat von: schmello am 11 September 2017, 13:23:34
Jetzt muss ich nur noch den Wert vom Dummy in den http Befehl rein bekommen und die Werte in meine CCU zu schreiben.. :)
Kann dies der Dummy selbst?
Also wenn sich der Wert im Dummy ändert löst er einen http Befehl aus...

Naja so ganz alleine kann der das nicht, aber ein notify welches darauf triggert kann das. Aber dann kannst auch gleich den Dummy weg lassen und das Notify nehmen was bisher den Dummy versorgt hat. Dazu kommt dann Dein http Aufruf den Du direkt in " " eingeschlossen losschicken kannst. Den Wert sendest Du im HTTP String in dem Du die Variable einsetzt $EVTPART1
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

CoolTux

Was mir gerade einfällt falls noch nicht genannt. Es gibt ein ein CCU Modul (HMCCU). Damit kann man so glaube ich auch Daten an die CCU senden.
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

schmello

#18
Könntest du mir da ein Beispiel schreiben?
So ungefähr müsste es doch dann aussehen :) Hoffe ich mal
define tempcheck notify Badezimmer.unten.Thermostat:temperature.* set http://192.168.178.3:8181/alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("$EVTPART1")

Von den Modul HMCCU habe ich auch schon gehört und auch was gelesen.. nur ich konnte es nicht einbinden.
Es kam immer eine Meldung das - Cannot load module HMCCU -
Und da es um "nur" 5-7 Wandthermostate geht es nur die bleiben, dachte ich ist es so wie ich es gerade vor habe am einfachsten.

CoolTux

Na das wird nicht gehen. set ist ein FHEM Befehl der ein Device erwartet. Du hast kein Device. Du willst einen HTTP String senden. Im einfachsten Fall mit einem Linux Kommandotool. wget zum Beispiel.

Ungetestet und ohne genaue Ahnung würde ich sagen

define tempcheck notify Badezimmer.unten.Thermostat:temperature.* "wget http://192.168.178.3:8181/alchy.exe?sagt=dom.GetObject(\"CUxD.CUX9002001:1.SET_TEMPERATURE\").State(\"$EVTPART1\")"


Warum der wget Befehl in "" und nicht als Perl system Aufruf? Ganz einfach. Alle Tools ausserhalb von FHEM blockieren FHEM. Das kann bis zu 3 Minuten dauern und das wäre sehr schlecht. Ein Kommandotool in " " aufgerufen tut dies nicht, dafür haben die FHEM Entwickler eine eigene Routine geschaffen.
Ich habe vorsichtshalber die " innerhalb des wgets noch maskiert. Weiß nicht ob der Befehl an sich in der url_encode aufgerufen wird.

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

schmello

Schade es scheint nicht zu funktionieren..
Der Notify wird zwar aktualisiert aber der Wert in der CCU nicht geändert.

CoolTux

Dann probiere das erstmal direkt in der Linux shell. Versuche den richtigen wget Befehl zu finden
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

schmello

Das sieht nach den ersten Versuchen so aus

Server:~# wget 192.168.178.3:8181/alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("25.5")
-bash: Syntaxfehler beim unerwarteten Wort `('


Ich probiere es weiter sobald ich wieder zuhause bin.

CoolTux

und wenn du es so machst

wget '192.168.178.3:8181/alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("25.5")'
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

schmello

#24
Das funktioniert... :)

Wenn ich nun das Einstelle.. Funktioniert es und der Wert State wird übertragen...
define tempcheck notify Badezimmer.unten.Thermostat:temperature.* "wget '192.168.178.3:8181/alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("25.5")'"
Und das im LogFile
--2017-09-11 17:17:33--  http://192.168.178.3:8181/alchy.exe?sagt=dom.GetObject(%22CUxD.CUX9002001:1.SET_TEMPERATURE%22).State(%2229.5%22)
Connecting to 192.168.178.3:8181... connected.
HTTP request sent, awaiting response... 200 OK
Length: 147 [text/xml]
Saving to: `alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("29.5")'

     0K                                                       100% 4.15M=0s

2017-09-11 17:17:33 (4.15 MB/s) - `alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("29.5")' saved [147/147]


Wenn ich aber State in $EVTPART1 änder zeigt mir das Gerät in der CCU 0 an.
define tempcheck notify Badezimmer.unten.Thermostat:temperature.* "wget '192.168.178.3:8181/alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("$EVTPART1")'"
Und das im LogFile
--2017-09-11 17:29:07--  http://192.168.178.3:8181/alchy.exe?sagt=dom.GetObject(%22CUxD.CUX9002001:1.SET_TEMPERATURE%22).State(%22$EVTPART1%22)
Connecting to 192.168.178.3:8181... connected.
HTTP request sent, awaiting response... 200 OK
Length: 147 [text/xml]
Saving to: `alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("$EVTPART1").3'

     0K                                                       100% 3.82M=0s

2017-09-11 17:29:07 (3.82 MB/s) - `alchy.exe?sagt=dom.GetObject("CUxD.CUX9002001:1.SET_TEMPERATURE").State("$EVTPART1").3' saved [147/147]


CoolTux

Wenn Du eine Variable in Perl in ' ' einschließt wird sie als String übertragen und nicht der Wert der Variable.

Es wird also $EVTPART1 genau so übertragen und nicht der Wert.
Nun suche Mal im Forum wie andere dieses Problem gelöst haben. Wget Variable sollte reichen als Suchbegriffe
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

CoolTux


define tempcheck notify Badezimmer.unten.Thermostat:temperature.* "wget '192.168.178.3:8181/alchy.exe\?sagt=dom.GetObject\("CUxD.CUX9002001:1.SET_TEMPERATURE"\).State\("$EVTPART1"\)'"


Bisschen probieren halt. Schau mal das hier
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

schmello


CoolTux

Man Schmello, heulen kannste bei der Mama. Probiere bitte bisschen rum, kann sein das Du da was escapen musst. Suche im Web oder Forum.
Du schaffst Das. *lieb in den Arm nehm*
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

schmello

:D:D Kein Problem... wollte nur sagen das es nicht geht mehr nicht...
Ob der Satz nun sein musste... egal... Trotzdem vielen dank für die hilfe..