[gelöst] FRITZ!DECT 200 lassen sich von FHEM aus nicht schalten

Begonnen von wk, 15 Januar 2019, 13:22:49

Vorheriges Thema - Nächstes Thema

wk

Hallo,

ich habe zwei Schaltdosen FRITZ!DECT 200, die sich über die Fritzbox gut schalten lassen, aber nicht über FHEM.
FHEM ist CONNECTED und liest die Werte aus.

defmod Fritzbox FBAHAHTTP 192.168.17.1
attr Fritzbox fritzbox-user fhem
attr Fritzbox polltime 900
attr Fritzbox room Fritzbox

setstate Fritzbox connected



defmod FBDECT_Fritzbox_16 FBDECT Fritzbox:16 switch
attr FBDECT_Fritzbox_16 IODev Fritzbox
attr FBDECT_Fritzbox_16 room Fritzbox

setstate FBDECT_Fritzbox_16 on
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 AIN 08761 0292048
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 FBNAME Kinderflur
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 FBPROP powerMeter,tempSensor,switch
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 FBTYPE FRITZ!DECT 200
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 ID 16
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 devicelock no
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 energy 0 Wh
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 fwversion 04.09
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 locked no
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 mode auto
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 power 0.00 W
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 present yes
setstate FBDECT_Fritzbox_16 2019-01-15 13:05:01 state on
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 tempadjust 0.0 C
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 temperature 23.5 C (measured)
setstate FBDECT_Fritzbox_16 2019-01-15 13:03:38 voltage 231.712 V

Die Fritzbox hat die neueste Firmware 7.01 und die Aktoren 4.09 und der Fritzbox-Benutzer fhem ist für das Schalten von SmartHome berechtigt.

FHEM setzt zwar den Status:
2019-01-15 13:05:01 FBDECT FBDECT_Fritzbox_16 on
aber beim nächsten Pollen der Fritzbox kommt der wirkliche Status off wieder.

Wo fehlt eine Einstellung oder was ist sonst falsch?

cu
Walter

rudolfkoenig

Was liefert ein Schalten bei "attr FBAHAHTTP verbose 5"?

wk

#2
keine zusätzlichen Zeilen

2019-01-15 20:53:10 Global global ATTR Fritzbox verbose 5
2019-01-15 20:53:35 FBDECT FBDECT_Fritzbox_16 off


Edit:
Ich hatte nur events angeschaut. In der fhem.log kam noch:

2019.01.15 20:53:35 3: Fritzbox: http://192.168.17.1/webservices/homeautoswitch.lua?sid=1ff56eef5e6063b0&ain=08761 0292048&switchcmd=setswitchoff: empty answer received

Gerold

vermutlich ist die IP-Adresse falsch, ist von der Fritzbox normalerweise 192.168.178.1 und nicht 192.168.17.1

wk

Nein, die IP-Adresse ist richtig. Wie Du oben sehen kannst, werden mit dieser Adresse alle Readings korrekt eingelesen.

wk

#5
Vielleicht fällt doch noch jemand etwas ein.

Ich habe jetzt den Befehl http://192.168.17.1/webservices/homeautoswitch.lua?sid=696c6af195cb2ceb&ain=08761 0292048&switchcmd=setswitchon direkt in Firefox eingegeben und erhalte als Antwort 1 oder 0 und der Schalter schaltet richtig.

Den Befehl habe ich aus dem fhem.log kopiert, wo er keine Antwort erhält:
2019.01.17 11:27:09 3: Fritzbox: http://192.168.17.1/webservices/homeautoswitch.lua?sid=696c6af195cb2ceb&ain=08761 0292048&switchcmd=setswitchon: empty answer received

Ich habe jetzt den Befehl auch direkt von meinem Linux-Server auf dem fhem läuft eingeben mit folgendem Resultat:
curl 'http://192.168.17.1/webservices/homeautoswitch.lua?sid=696c6af195cb2ceb&ain=08761 0292048&switchcmd=setswitchon'
curl: (52) Empty reply from server

Kann sich einer von Euch einen Reim darauf machen, denn die sid ist in beiden Fällen identisch, d.h. die Fritzbox akzeptiert den Befehl von Firefox aber nicht vom Linux-Server.

rudolfkoenig

Wenn ich meine Geraete schalte dann bekomme ich statt "empty answer received" immer ein "HTTP response code 200".
Beim curl Aufruf kommt 1, und wenn ich sid aendere (weil ich einen Fehler provozieren will), dann nichts.

Ich habe etwas nachgedacht, ohne Ergebnis:
- es koennte ein Firewall Problem sein, aber wieso bekommst du dann die Status-Daten? Status abholen laeuft ueber den gleichen Mechanismus wie schalten, es wird nur switchcmd=getdevicelistinfos gesendet, ohne AIN, anstelle von switchcmd=setswitchon
- wenn es an einer (mir unbekannten) Berechtigungsproblem im FritzBox liegt, dann duerfte dein Browserversuch auch nicht funktionieren.

Bin ratlos.


Nachtrag: mein Fritz!Box laeuft auch mit 7.01

Jamo

Ich hatte das gleiche Problem gestern auch.
Über fhem auf 'on' geschaltet (bei mir innerhalb einer structure), in der FHEM Oberfläche ist der Dect200 auf 'on' gegangen. Die Steckdose ist aber nicht eingeschaltet worden, beim nächsten Pollen der Fritzbox war der wirkliche Status wieder off, die structure ging auf 'undefined'.
Hat mich Wahnsinnig gemacht. Habe dann auch das FBAHAHTTP device gelöscht und neu angelegt. Hat alles nicht geholfen.

Nach einem FHEM Neustart ist jetzt aber alles wieder gut. Vielleicht hilfts Dir auch.


Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

rudolfkoenig

ZitatNach einem FHEM Neustart ist jetzt aber alles wieder gut.
Das klingt so, dass SID nicht mehr gueltig war, normalerweise bekommt FHBAHTTP nach dem Ablauf der gueltigkeit eine Fehlermeldung, und versucht es neu.
Mann kann das Neu-Holen der SID auch mit set password oder attr fritzbox-user erzwingen.

Jamo

Hallo Rudolf, danke, 'set password' als auch attr fritzbox-user hatte ich glaube ich probiert, ich habe danach ja auch das FBAHAHTTP device gelöscht und neu angelegt, letztendlich war es der Neustart der geholfen hat. Vielleicht kann user wk set password und attr fritzbox-user ja nochmal ausprobieren, vor einem Neustart.
Danke nochmal!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

Mir fällt nochwas ein, ich hatte gestern vorher pi-hole installiert auf einem getrenntem Pi (nicht der FHEM pi), und hatte danach probleme mit DNS, und habe dann ein paarmal die DNS in der FB aendern muessen, und die FB rebooten muessen, bis alles wieder funktionierte. Kann sein das das was damit zu tun hatte!?!?!
Auf jedenfall hatte ich auch das Verhalten des user WK.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

wk

Ich glaube, ich habe das Problem eingekreist. Es ist das Blank in der AIN. Wenn man es herausnimmt, dann geht es.

root@uhs:~# curl "http://192.168.17.1/webservices/homeautoswitch.lua?sid=f2127a49004df6b8&ain=08761 0292048&switchcmd=setswitchon"
curl: (52) Empty reply from server

root@uhs:~# curl "http://192.168.17.1/webservices/homeautoswitch.lua?sid=f2127a49004df6b8&ain=087610292048&switchcmd=setswitchon"
1
root@uhs:~#



rudolfkoenig

Danke fuer den Hinweis: ich habe jetzt beim Schalten im AIN das Leerzeichen weggemacht, bei mir funktioniert es immer noch.
Die Aenderung gibt es ab morgen um 8 per FHEM-update, oder ab sofort im SVN.

Wuesste aber gerne, welche Komponente bei Dir sich daran aufhaengt.

wk

Vielen Dank Rudolf,

ich werde es morgen testen.

Ich kann mir nur vorstellen, dass der Proxy in der Firewall dazwischen funkt, denn wenn das Blank da ist, taucht der ganze Befehl nicht im log der Firewall auf. Ich bin kein Experte für curl, aber es scheint als das durch das Blank, auch wenn es in Hochkommas steht, der Befehl geteilt wird und damit nicht erkannt. Er wird dann garnicht an den Proxy weitergeleitet. Warum das der Firefox richtig macht, verstehe ich auch nicht.

rudolfkoenig

Verstehe ich richtig: FHEM greift bei Dir durch ein Proxy auf dem Fritz!BOX zu?

Den Rest kann ich dir erklaeren: im URL muss man eigentlich Leerzeichen als %20 kodieren. Mein Fritz!BOX stoert sich aber nicht an der fehlenden Kodierung, und ich habe mich gewundert, wieso das bei Dir der Fall ist.