Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ich schaue mir mal heute abend an ob ich das merge. Bin nicht sicher ob ich die Items dazu direkt oder via der Funktion befülle. Via Item funktioniert das Feature definitiv, da ich es bereits aktiv bspw. zur Torsteuerung nutze. Bitte auch noch Angabe welche FB und welches OS.
Genau das war mein Problem, ein per Logic angetriggerts "sh.fb1._update_loop()" brachte das richtige Ergebnis, "is_host_active" brachte -wie gesagt- was anderes. Und wenn du schon mal dabei bist, könntest du mir mal ein Beispiel für "_update_host" posten, das hab ich nämlich nicht hinbekommen, Fehler war immer "Item ... hat kein Element conf" oder so ähnlich.
Ich schaue mir mal heute abend an ob ich das merge. Bin nicht sicher ob ich die Items dazu direkt oder via der Funktion befülle. Via Item funktioniert das Feature definitiv, da ich es bereits aktiv bspw. zur Torsteuerung nutze. Bitte auch noch Angabe welche FB und welches OS.
Danke schonmal für die Auseinandersetzung mit dem Thema ist nicht selbstverständlich gleich den Fix zu liefern!
Ich hatte da noch ein Problem bei der Abfrage "is_host_active", da kam immer True, auch wennn der Host in der Fritzbox nicht angemeldet war. Das habe ich (im Rahmen meiner Möglichkeiten) gefixt:
Bau mal den try - catch block in der _update_home_automation so um und schau was der logger in der neuen Zeile rausloggt. CURL geht bei mir nciht, weil der Service authentisierung braucht und ich will da jetzt nicht ewig rummachen..
Code:
try:
response= self._session.post(url, data=soap_data, timeout=self._timeout, headers=headers, auth=HTTPDigestAuth(self._fritz_device.get_user(), self._fritz_device.get_password()), verify=self._verify)
self.logger.debug(response.content)
xml = minidom.parseString(response.content)
except Exception as e:
self.logger.error("Exception when sending POST request or parsing response: %s" % str(e))
return
Der NewSwitchState ist eine Standardantwort des GetSpecificDeviceInfos (http://avm.de/fileadmin/user_upload/...x_homeauto.pdf), das hat nichts mit Deinem Gerät zu tun.Aus meiner Sicht gibt es gerade Probleme auf Dein Childitem zuzugreifen, ich bin nur nicht sicher warum. Hast Du ein weiteres Child ohne avm_data_type???
AAAAHH das Childitem wars.
ich hab noch 2 childitems zum Testen drin gehabt hatte alles rausgeschmissen, also nur noch
HTML-Code:
[[[[TemperaturIst]]]]
type = num
visu_acl = rw
name = Badtemp
Ich stelle gerade noch nen fix mit einem "if 'avm_data_type' in child.conf:" rein. Evtl fixt das dein Problem, den Codezeilen nach hattest Du sowieso nicht die neuste Version aus dem DEV.. Zieh Dir die mal..
Bau mal den try - catch block in der _update_home_automation so um und schau was der logger in der neuen Zeile rausloggt. CURL geht bei mir nciht, weil der Service authentisierung braucht und ich will da jetzt nicht ewig rummachen..
Code:
try:
response= self._session.post(url, data=soap_data, timeout=self._timeout, headers=headers, auth=HTTPDigestAuth(self._fritz_device.get_user(), self._fritz_device.get_password()), verify=self._verify)
self.logger.debug(response.content)
xml = minidom.parseString(response.content)
except Exception as e:
self.logger.error("Exception when sending POST request or parsing response: %s" % str(e))
return
Der NewSwitchState ist eine Standardantwort des GetSpecificDeviceInfos (http://avm.de/fileadmin/user_upload/...x_homeauto.pdf), das hat nichts mit Deinem Gerät zu tun.Aus meiner Sicht gibt es gerade Probleme auf Dein Childitem zuzugreifen, ich bin nur nicht sicher warum. Hast Du ein weiteres Child ohne avm_data_type???
Ich versuche es gerade mal nachzuvollziehen. Ansich sind das Standardwerte aus der TR-064 API. Was Du immer tun könntest ist mal gegen den GetSpecificDeviceInfos direkt mit einem CURL gehen.
Servus,
ich habe heute erfolgreich vom Fritzbox 2.0 aufs AVM Plugin gewechselt.
Erstmal Respekt für deine klasse Arbeit!!!
Das meisste funktioniert auf Anhieb.
Bei mir funktioniert jetzt sogar das Call, das hat mit dem Fritzbox Plugin bei mir nie hingehaun.
Bei den Fritz Dect 200 Steckdosen hatte ich aber ein paar Probleme mit der Umstellung.
Hauptsächlich weil meine Items für die Temperatur meistens nicht als Childitem von den Steckdosen selber waren.
Nachdem ich jetzt alles ein bisserl umgeschmissen hab, häng ich nur noch bei einem einzigen Problem.
Ich habe noch einen Cometdect Stellantrieb bei mir im Bad hängen, bei dem habe ich mit dem Fritzbox2.0 einfach die AIN und Fritzbox = temperatur eingebaut, und dann hat er zumindest auch die Temperatur ohne zu motzen ausgelesen.
Beim AVM Plugin bekomme ich da aber Probleme
Wenn ich:
HTML-Code:
[[Bad]]
name = Bad
sv_page = room
sv_img = scene_hall.svg
[[[Heizung]]]
name = Heizung
type = bool
avm_data_type = aha_device
avm_identifier = fritzbox_1
ain = 10971 0348880
[[[[TemperaturMess]]]]
type = num
visu_acl = rw
name = Badtemp
avm_data_type = temperature
eval = value / 10
nehme,
bekomme ich folgende Meldung im Debug:
HTML-Code:
2016-04-27 17:49:45,141 ERROR plugins.avm_fritzbox_1 Method plugins.avm_fritzbox_1 exception: 'avm_data_type' -- scheduler.py:_task:362
Traceback (most recent call last):
File "/usr/smarthome/lib/scheduler.py", line 358, in _task
obj()
File "/usr/smarthome/plugins/avm/__init__.py", line 529, in _update_loop
self._update_home_automation(item)
File "/usr/smarthome/plugins/avm/__init__.py", line 1089, in _update_home_automation
if child.conf['avm_data_type'] == 'temperature':
KeyError: 'avm_data_type'
Es wird die Temperatur angezeigt, ABER der Status der Steckdosen wird nicht mehr aktualisiert.
Stell ich die AIN bei TemperaturMess rein, bekomm ich keine Fehlermeldung, ABER auch keine Temperatur.
Ich schätzte mal das hängt mit dem
PHP-Code:
if item.conf['avm_data_type'] == 'aha_device': element_xml = xml.getElementsByTagName('NewSwitchState')
zusammen da das Cometdect ja kein Fritz Switch ist.
Wie ich das beheben könnte entzieht sich leider meinen bescheidenen Python Kenntnissen.
Kann es sein, dass es bei Dir auch eine Itemhierarchie mit [avm] gibt?
Die Meldung sieht zumindest so aus... SH.py denkt, dass Du nen Itemzugriff machst.
ahas sind avm home automation devices. also bspw dect steckdosen. nicht aber dect telefone. steckdosen haben immer diese lange id. mit anderen ahas wie thermostaten habe ich es mangels geraeten nicht testen können.
die dinger laufen unter heimnetz - smarthome und die id heisst aktor identifikationsnummer (ain)
Hi,
habe das Plugin jetzt mal eingebaut. Komme aber mit der ID der Dect-Telefone nicht klar.
Bei mir heißt das Telefon zB Schlafzimmer.
Wenn ich das in die Konfig schreibe, bekomme ich: Attribute aha_device not available on the FritzDevice
Gleicher Fehler, wenn ich die ID aus DECT-Monitor nehme.
Der ganze Rest der Konfiguration geht. Ich habe eine Fritzbox 7490 mit FRITZ!OS: 06.51
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Einen Kommentar schreiben: