Hilfe
Ich habe einen FHEM-System auf einem RaspberryPi 192.168.0.136. hier sind FS20 Komponenten und AVM Steckdosen angebunden. Das ganze funktioniert voll gut.
Des weiteren habe ich einen Janitzazähler 192.168.0.155 mit Web-Oberfläche. Über die Weboberfläche kann ich Digital Ausgänge schalten.
Jetzt möchte ich die Ausgänge auf dem Janitzazähler über FHEM schalten. Das soll über einen Schalter der on off auf FHEM geschaltet wird an den Janitzazähler weiter gegeben werden.
Der Ausgang bei Janitza wird über die Adresse http://192.168.0.155/schaltermobil.html?_S0_CNT[1]=1 eingeschaltet, und über die Adresse http://192.168.0.155/schaltermobil.html?_S0_CNT[1]=0 ausgeschaltet. Die Rückmeldung ob ein oder aus kommt über die Adresse http://192.168.0.155/indexm.html?_ DIGOUT[1]=1 ein, oder Adresse http://192.168.0.155/indexm.html?_ DIGOUT[1]=0 aus.
Ich habe mehrere Versuche gestartet aber nicht´s funktioniert.
Ich habe HTTPMOD probiert komme aber überhaupt nicht weiter hier meine Versuche wer kann mir helfen oder in die richtige Spur bringen.
define Janitza_Auffahrt_Licht HTTPMOD http://192.168.0.155/schaltermobil.html
attr Janitza_Auffahrt_Licht userattr icon
attr Janitza_Auffahrt_Licht icon fts_sliding_gate
attr Janitza_Auffahrt_Licht room FS20
# attr Janitza_Auffahrt_Licht userattr icon
# attr Janitza_Auffahrt_Licht devStateIcon an:on:off aus:off:on
# attr Janitza_Auffahrt_Licht eventMap on:an off:aus
# attr Janitza_Auffahrt_Licht eventMap on:1 off:0
# attr set Janitza_Auffahrt_Licht_ein cmd http://192.168.0.155/schaltermobil.html?_S0_CNT[1]=1
# attr set Janitza_Auffahrt_Licht_aus cmd http://192.168.0.155/schaltermobil.html?_S0_CNT[1]=0
# attr Janitza_Auffahrt_Licht getData {"get" :["%%http://192.168.0.155/indexm.html?_DIGOUT_STAT[1]=%%."]}
# attr Janitza_Auffahrt_Licht userattr devStateIcon icon
# attr Janitza_Auffahrt_Licht devStateIcon http://192.168.0.155/schaltermobil.html?_DIGOUT_STAT[1]=1:on:off http://192.168.0.155/schaltermobil.html?_DIGOUT_STAT[1]=0:off:on
:(
Hallo,
am besten Du schaust Dir die Wiki-Seite zu HTTPMOD in Ruhe an. Ich habe dort gerade noch ein einfacheres Beispiel für einen set per URL eingefügt. Das sollte Dir weiterhelfen:
http://www.fhemwiki.de/wiki/HTTPMOD#Advanced_configuration_to_define_a_set_and_send_data_to_a_device
Gruss
Stefan
Hallo vielen Dank, leider geht das so nicht.
Es muss irgendwie so gehen zumindest schaltet das so, das Icon funktioniert nicht.
# define Janitza_Auffahrt_Licht HTTPMOD http://192.168.0.155/schaltermobil.html
# attr Janitza_Auffahrt_Licht userattr devStateIcon icon set01Map set01Name set01URL set02Map set02Name set02URL
# attr Janitza_Auffahrt_Licht devStateIcon 0:off:aus 1:on:EIN
# attr Janitza_Auffahrt_Licht icon fts_sliding_gate
# attr Janitza_Auffahrt_Licht room FS20
# attr Janitza_Auffahrt_Licht set01Map 0:AUS, 1:EIN
# attr Janitza_Auffahrt_Licht set01Name EIN
# attr Janitza_Auffahrt_Licht set01URL http://192.168.0.155/schaltermobil.html?_S0_CNT[1]=1
# attr Janitza_Auffahrt_Licht set02Map 0:AUS, 1:EIN
# attr Janitza_Auffahrt_Licht set02Name AUS
# attr Janitza_Auffahrt_Licht set02URL http://192.168.0.155/schaltermobil.html?_S0_CNT[1]=0
Vielleicht kannst Du mir weiter helfen.
MfG
HansDampf
Hallo HansDampf,
Ein normaler Set-Befehl, der in HTTPMOD per Attribut definiert werden kann, geht zunächst davon aus, dass man einen Parameter des Geräts auf einen Wert setzt. Beispielsweise
set Gerät ZielTemp 23
oder
set Gerät power 1
dafür definiert man einen set-Befehl mit Attributen wie
attr Gerät set01Name ZielTemp
attr Gerät set02Name power
usw.
Der angegebene Name wird der set-Parameter, dem man einen Wert zuweisen kann.
Um den übergebenen Wert an das physische Gerät zu senden, definiert man die benötigte URL, bei Bedarf Header oder auch Post-Daten und schreibt statt dem Wert den Platzhalter $val. HTTPMOD nimmt dann den Wert aus dem Set-Befehl nach dem Parameter und setzt ihn an die Stelle von $val.
Beispiel:
attr Gerät set01Name TempSoll
attr Gerät set01URL http://192.168.1.21/settemp?temp=$val
Eine Map übersetzt von Text-Werten zu Zahlen. Damit könnte man statt einem
set Gerät power 1
auch ein
set Gerät power on
schreiben.
Beispiel:
attr Gerät set01Map 0:off, 1:on
Wenn man statt
set Gerät power 1
einfach nur
set Gerät on
schreiben möchte, dann ist "on" ein Parameter ohne Wert. Folglich ist auch eine Map sinnlos und $val kann nicht verwendet werden. Um HTTPMOD dazu zu bringen, dass solche Parameter ohne Werte zugelassen sind, kann man für den Set-Befehl das NoArg Attribut setzen, also z.B.:
attr Gerät set01Name on
attr Gerät set01NoArg
attr Gerät set01URL http://192.168.1.21/settemp?power=1
Die Sache mit den Icons hat nichts direkt mit HTTPMOD zu tun. Zunächst einmal wird durch einen Set-Befehl auch kein Reading verändert, es sei denn, man bekommt auf den entsprechenden HTTP-Request eine Antwort, aus der der entsprechende Wert hervorgeht und man setzt das entsprechende Attribut ParseResponse. Das geht aber erst seit der neuesten Version (siehe anderer Post hier).
Ohne dieses neue Feature muss man nach dem Set erst mal per Get oder über den normalen Update-Zyklus Readings abfragen. Dann muss aus dem Readings ein state gemacht werden (siehe stateFormat) und dann kann man auch noch mit den Icons spielen.
Weder stateFormat noch devStateIcon sind Features von HTTPMOD sondern generelle Features von Fhem bzw. fhemweb.
Gruss
Stefan
Hi Stefan,
Danke schonmal für die Tipps!
So geht es ich muß aber immer mit OK bestätigen.
define Janitza_Auffahrt_Licht HTTPMOD http://192.168.0.155/schaltermobil.html
attr Janitza_Auffahrt_Licht userattr devStateIcon icon set01Name set01NoArg set01URL set02Name set02NoArg set02URL
attr Janitza_Auffahrt_Licht devStateIcon .*:FS20.on .*:FS20.off
attr Janitza_Auffahrt_Licht icon fts_sliding_gate
attr Janitza_Auffahrt_Licht room FS20
attr Janitza_Auffahrt_Licht set01Name on
attr Janitza_Auffahrt_Licht set01NoArg
attr Janitza_Auffahrt_Licht set01URL http://192.168.0.155/schaltermobil.html?_S0_CNT[1]=1
attr Janitza_Auffahrt_Licht set02Name off
attr Janitza_Auffahrt_Licht set02NoArg
attr Janitza_Auffahrt_Licht set02URL http://192.168.0.155/schaltermobil.html?_S0_CNT[1]=0
MfG
HansDampf
Hallo in die Runde,
ich habe mir auch so einen Aufruf gebastelt, würde aber gerne den OK Bestätigungs-Dialog loswerden den auch Hansdampf beschreibt.
Was gibt es da für Möglichkeiten?
Mit freundlichen Grüßen
Martin
Hallo an Alle,
das OK brauche ich nur wenn ich über FHEM "Janitza_Auffahrt_Licht" schalte.
Ich benutze die Funktion für eine Auto-Schaltung die sieht so aus:
EIN
define act_on_FBDECT_16 notify FBDECT_16 {if (Value("FBDECT_16") eq "on" && Value("Freigabe_Automatik_Licht") eq "an") {fhem("set wz_aussenlicht1124 on;;set Janitza_Auffahrt_Licht on")}}
AUS
define act_off_FBDECT_16 notify FBDECT_16 {if (Value("FBDECT_16") eq "off" && Value("Freigabe_Automatik_Licht") eq "an") {fhem("set wz_aussenlicht1124 off;;set Janitza_Auffahrt_Licht off")}}
Erklärung:
von der Fritzbox über FBDECT kommt der Ein- oder Aus-Schaltbefehl dazu habe ich eine "Freigabe" für die Automatik eingebaut "Freigabe_Automatik_Licht" damit kann ich alles automatisch laufen lassen oder wenn ich die Freigabe ausschalte, alles manuell schalten, was ohne "Freigabe" nicht geht.
Bei der Automatik brauche ich kein OK das läuft so wie im Programm.
Das ist keine Antwort auf die Frage; deshalb warum OK?
MfG
HansDampf
Hallo zusammen,
mit Hilfe dieses Threads hab ich endlich geschafft meine WLAN-Steckdose zu Schalten.
Diese Lösung ist zwar mehr ein Notbehelf aber eine andere habe ich bisher nicht gefunden.
Ein/Aus habe ich mittlerweile so gelöst...
attr BL1 userattr set01Name set01NoArg:0,1 set01URL set02Name set02NoArg:0,1 set02URL
attr BL1 set01Name on
attr BL1 set01NoArg 1
attr BL1 set01URL http://192.168.178.35:9876/send?deviceMac=b4:43:0d:c1:c2:85&codeId=1
attr BL1 set02Name off
attr BL1 set02NoArg 1
attr BL1 set02URL http://192.168.178.35:9876/send?deviceMac=b4:43:0d:c1:c2:85&codeId=0
Funktioniert auch.
Mein Problem das der Status über eine andere URL abgefragt wird, die da lauet....
http://192.168.178.35:9876/status?deviceMac=b4:43:0d:c1:c2:85
Als Antwort im Browser bekomme ich...
{"timestamp":"1478929946195","deviceMac":"b4:43:0d:c1:c2:85","on_off_status":1,"uri":"/status","status":"ok"}
Ich habe so gar keinen Ansatz wie ich das Lösen kann.
Ziel ist es im FTUI den STATE der Dose richtig Anzeigen zu lassen.
Derzeitiger Stand ist, nach einem Refresh der Seite wird die Dose als "off" dargestellt.
Entschuldigt wenn ich das hier so laienhaft schreibe, aber besser wüsste ich es an dieser Stelle nicht.
Hätte da vielleicht jemand einen Rat für mich?