FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: kleinemeise am 27 April 2015, 15:53:58

Titel: GetFileFromURL bei Geräteabfrage
Beitrag von: kleinemeise am 27 April 2015, 15:53:58
Hallo Leute,

ich beschäftige mich gerade neu mit Fhem und bin auch schon relativ weit.Jetzt komme ich aber nicht weiter.
Ich besitze eine Homematic CCU2 welche zukünfig von FHEM mit Daten gefüttert werden soll.

Ich lese ein Gerät wie folgt aus:

define BOX ModbusRegister 0 4
attr BOX IODev SB
attr BOX alias Stromzahler
attr BOX icon scene_making_love
attr BOX plcDataType REAL
attr BOX room Keller
attr BOX stateFormat {sprintf("%0.1f kWh", ReadingsVal($name,"state",0))}
attr BOX updateInterval 150


Diesen Werte würde ich gern direkt an die CCU weiter geben. Das sollte ja per

GetFileFromURL "http://192.168.178.11:8181/FHEM2CCU.exe?state=dom.GetObject('FhemTest').State(WERT)"
funktionieren.
Nur wie triggere ich das an?

Bisher habe ich immer nur "notify" gefunden --> aber ich will die URL ja nicht bei einem Event aufrufen, sondern direkt noch der Abfrage des Stromzählers.

Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: Phill am 04 Mai 2015, 23:05:08
Hallo,

Doch notify wäre hier genau das richtige, da notify ja genau dann reagiert wenn ein neuer wert eingelesen wurde.

Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: kleinemeise am 08 Mai 2015, 09:44:17
irgendwie komme ich nicht weiter. Testweise wollte ich mal einen Trigger anlegen:

define UpdateHomematic notify UpdateHomematic { GetFileFromURL("192.168.178.11:8181", "/FHEM2CCU.exe?state=dom.GetObject('FhemTest').State('TEST')") }

und dann per Aufrufen
trigger UpdateHomematic

Der Trigger wird auch ausgeführt. Nur kommt nix an :-(
Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: Phill am 08 Mai 2015, 09:55:25
Du musst nicht über den Umweg des notify gehen um es zu testen, du kannst die geschweifte klammer direkt in die FHEM Kommandozeile eingeben.

Weiterhin würde ich um zu sehen was schief läuft das ganze in die Log umleiten.
{ Log 1, GetFileFromURL("192.168.178.11:8181", "/FHEM2CCU.exe?state=dom.GetObject('FhemTest').State('TEST')", 5, "", 1, 1) }

Dann sollte in der Logfile von fhem zumindest ein Fehler kommen, warum es nicht geht.
Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: kleinemeise am 08 Mai 2015, 10:06:19
super Phill.

Habe jetzt nochmal bissel rumgespielt.

per
define Update2Homematic notify Update2Homematic { GetHttpFile("192.168.178.11:8181", "/FHEM2CCU.exe?state=dom.GetObject('FhemTest').State('TEST32')") }
funktioniert es.

Jetzt müssen nur noch die Variablen rein und das ganze Zeigesteuert ablaufen :-)
Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: kleinemeise am 08 Mai 2015, 10:48:08
So funktioniert es :  :D

define Stromz2Homematic notify Stromz2Homematic { GetHttpFile("192.168.178.11:8181", "/FHEM2CCU.exe?state=dom.GetObject('Stromzaehler').State(" . Value("Stromz") . ")")}
trigger Stromz2Homematic
Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: kleinemeise am 08 Mai 2015, 12:09:26
ok, ich muss nochmal nachfragen.

Wie bekomme ich den
trigger Stromz2Homematic jetzt z.B. alle 5 Minuten ausgeführt?
Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: Hollo am 08 Mai 2015, 12:38:25
Wenn Du etwas regelmäßig machen willst und kein auslösendes Event hast...  at .  ;D
Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: kleinemeise am 08 Mai 2015, 13:59:12
das habe ich schon probiert:

trigger Stromz2Homematic at +*00:01:00
funktioniert leider nicht. Hatte auch mal im Forum gesucht, aber "at" ist nen schlechter Suchbegriff :-(
Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: Hans Franz am 08 Mai 2015, 14:08:36
Hallo,

define Stromz2Homematic at +*00:05:00 { GetHttpFile("192.168.178.11:8181", "/FHEM2CCU.exe?state=dom.GetObject('Stromzaehler').State(" . Value("Stromz") . ")")}
ist einfacher.

Gruß
Hans

Edit:
vorher:
delete Stromz2Homematic
Titel: Antw:GetFileFromURL bei Geräteabfrage
Beitrag von: Hollo am 08 Mai 2015, 15:31:08
Zitat von: kleinemeise am 08 Mai 2015, 13:59:12
das habe ich schon probiert...
Nee, hast Du nicht. Hatte mich vielleicht undeutlich ausgedrückt.
Ich meinte at als FHEM-Befehl, also als Hinweis auf die commandref.

Dein Trigger kann ja nix richtig bewirken, weil Du ein notify definiert hast; und das benötigt numal ein auslösendes Event.

Hans Franz hat es Dir ja schon gepostet.