NEWS
Homepilot Adapter zeigt keine State-Datenpunkte bei Schalt-Aktoren
-
Hallo mickey,
ich habe den Adapter etwas angepasst (neue Version 0.2.1). Aus den Seriennummern werden nur die ersten beiden Zeichen verwendet. Wenn diese "43" oder "46" sind, dann sollte ein state-Datenpunkt angelegt werden.
Bitte die bestehende Homepilot-Instanz löschen und den Adapter von Github installieren https://github.com/Pix–-/ioBroker.homepilot, damit bei der Prüfung der Seriennummern der Geräte die Funktion createState() den Datenpunkt als state neu anlegen kann.
Ich bitte um Feedback.
Gruß
Pix
-
Hi Pix,
jetzt wird ein State Datenpunkt angezeigt. Und Alexa mit dem Cloudadapter funktioniert auch! Ich kann jetzt über Alexa meine Aktoren ein und ausschalten.
VIELEN VIELEN DANK!!!
Aber eine Kleinigkeit fehlt noch. Der Adapter holt sich nicht den Status des Aktors in den Statedatenpunkt. Direkt nach der Inbetriebnahme der Instanz des Adapters sind die State Datenpunkte leer. Auch bei Betätigen des Aktors von einem anderen Sender (z.B. Lichtschalter) wird der State Datenpunkt nicht aktualisiert.
Schreibe ich manuell in dem State Datenpunkt true bzw. false wird der Aktor korrekt geschaltet und der letzte eingetragene Wert bleibt im Datenpunkt stehen. Unabhängig davon ob man den Aktor auf anderem Wege schaltet.
Könnte man das nicht einfach mit einer simplen if Abfrage in der Aktualisierungsroutine des Adapters bewerkstelligen? Nach dem Motto wenn LEVEL > 0 dann STATE = true ansonsten FALSE.
Aber ich denke das ist auch noch machbar.
Wenn Du jetzt noch bei Gelegenheit den code für Deine Gurtwickler in die Geräte mit der Seriennummer 47 und 42 kopierst, dann müsste ich meine Rollläden auch per LEVEL Datenpunkt schalten können oder? Die CID Befehle sind für Rohrmotoren identisch mit denen der Gurtwickler.
Aber nochmals Danke für die schnelle Anpassung des Adapters.
P.S: Noch eine kurze Frage: Jetzt da der Cloudadapter ja funktioniert ist es doch nicht mehr notwendig die Datenstruktur des Adapters zu ändern oder? Ich würde dann nämlich meine Aktoren in den Cloudadapter eintragen. Und da das relativ viele sind, wäre es blöd, wenn ich diese Arbeit irgendwann noch mal machen müsste.
Viele Grüße Micky
-
Hallo Mickey,
schön, dass es klappt.
Du hast recht, die Aktualisierung der Datenpunkte fehlt. Ich hab es schlicht vergessen. Kann es mangels Aktoren ja auch nicht ausprobieren.
@Micky79:Nach dem Motto wenn LEVEL > 0 dann STATE = true ansonsten FALSE. ` Gibt es schon, nur an anderer Stelle.
Kannst du nochmal nachsehen, ob diese Liste so stimmt:
https://github.com/Pix---/ioBroker.home ... ed-devices
Dürfte keine größeren Probleme machen, die 42 und 47 ebenfalls einzubinden.
Werde das alles nachholen. Vermutlich aber nicht mehr heute.
Die Datenstruktur gefällt mir allerdings trotzdem nicht. Auch wenn es so möglich ist, Alexa zu nutzen, sehe ich später Probleme zB bei "mobile" oder anderen dynamisch erstellten Seiten. Da sich aber bisher keiner beschwert hat ... es bleibt also erstmal so.
Gruß
Pix
-
Jo, die Liste stimmt so wie ich es sehe.
Noch etwas. Mir ist gerade aufgefallen das ich ein paar Einträge des Homepilot Adapters im Log habe wie z.B. das hier:
homepilot.0 2017-01-24 16:31:28.879 info Command sent to Homepilot because "false" written to State "homepilot.0.devices.Schaltaktor2-Kanal.10045.state"
homepilot.0 2017-01-24 16:31:28.861 info Command sent to Homepilot because "false" written to State "homepilot.0.devices.Schaltaktor2-Kanal.10046.state"
javascript.0 2017-01-24 16:31:28.847 warn Wrong type of homepilot.0.devices.Schaltaktor2-Kanal.10045.state: "boolean". Please fix, while deprecated and will not work in next versions.
javascript.0 2017-01-24 16:31:28.836 warn Wrong type of homepilot.0.devices.Schaltaktor2-Kanal.10046.state: "boolean". Please fix, while deprecated and will not work in next versions.
Viele Grüße Micky
-
Neue Version auf Github: https://github.com/Pix–-/ioBroker.homepilot
Datenpunkte werden nun aktualisiert.
Die Meldung "Command sent to Homepilot because...." ist eigentlich "debug", stelle ich um.
Wrong type of homepilot.0.devices.Schaltaktor2-Kanal.10046.state: "boolean". Please fix, while ....
Er meckert, weil ein boolean kommt, er aber ein "booelan" erwartete. Also ein Schreibfehler (Zeile 313 main.js). Repariert.
Probier nochmal 0.2.2 aus
Pix
-
Hi Pix.
State wird jetzt aktualisiert! Super. Vielen Dank.
Jetzt nur noch die Rohrmotoraktoren und die Rohrmotorsteuerungen …
-
Hallo Micky,
@Micky79:Jetzt nur noch die Rohrmotoraktoren und die Rohrmotorsteuerungen … `
ähh, das ist eigentlich schon erledigt. Du musst natürlich die Instanz vorher löschen, damit createStates/setStateIfNotExist neu anlegen kann…Gruß
Pix
-
Hallo Pix,
ja, habe ich ja auch so gemacht. Alte Instanz gelöscht und dann neu von GitHub installiert. Bei den Adaptern wird auch 0.2.2 angezeigt.
Der Adapter erstellt auch alle Datenpunkte neu. Kann man im LOG sehen.
Habe es eben noch mal probiert, gelöscht und neuinstalliert. Leider ohne Erfolg. Der Leveldatenpunkt ist nicht beschreibbar.
Habe Dir mal ein Screenshot angehängt.
Und hin und wieder kommt es vor, dass der Adapter nach ein paar Fehlermeldungen beendet wird und dann neu startet. Siehe hier die Log Einträge:
homepilot.0 2017-01-25 05:33:43.479 info starting. Version 0.2.2 in /opt/iobroker/node_modules/iobroker.homepilot, node: v4.7.2
host.iobroker 2017-01-25 05:33:41.476 info instance system.adapter.homepilot.0 started with pid 9776
host.iobroker 2017-01-25 05:33:11.417 info Restart adapter system.adapter.homepilot.0 because enabled
host.iobroker 2017-01-25 05:33:11.410 error instance system.adapter.homepilot.0 terminated with code 0 (OK)
homepilot.0 2017-01-25 05:33:11.354 info Homepilot adapter stopped
homepilot.0 2017-01-25 05:33:11.353 info terminating homepilot adapter
homepilot.0 2017-01-25 05:33:11.351 error at IncomingMessage.emit (events.js:166:7)
homepilot.0 2017-01-25 05:33:11.351 error at emitNone (events.js:72:20)
homepilot.0 2017-01-25 05:33:11.351 error at IncomingMessage.g (events.js:260:16)
homepilot.0 2017-01-25 05:33:11.351 error at IncomingMessage. (/opt/iobroker/node_modules/iobroker.homepilot/node_modules/request/request.js:1001:12)
homepilot.0 2017-01-25 05:33:11.351 error at Request.emit (events.js:169:7)
homepilot.0 2017-01-25 05:33:11.351 error at emitOne (events.js:77:13)
homepilot.0 2017-01-25 05:33:11.351 error at Request. (/opt/iobroker/node_modules/iobroker.homepilot/node_modules/request/request.js:1081:10)
homepilot.0 2017-01-25 05:33:11.351 error at Request.emit (events.js:172:7)
homepilot.0 2017-01-25 05:33:11.351 error at emitTwo (events.js:87:13)
homepilot.0 2017-01-25 05:33:11.351 error at Request.self.callback (/opt/iobroker/node_modules/iobroker.homepilot/node_modules/request/request.js:186:22)
homepilot.0 2017-01-25 05:33:11.351 error at Request._callback (/opt/iobroker/node_modules/iobroker.homepilot/main.js:432:51)
homepilot.0 2017-01-25 05:33:11.351 error TypeError: Cannot read property 'length' of undefined
homepilot.0 2017-01-25 05:33:11.337 error uncaught exception: Cannot read property 'length' of undefined
Und solche Warnungen kommen auch:
javascript.0 2017-01-25 05:39:27.616 warn Wrong type of homepilot.0.devices.Schaltaktor2-Kanal.10070.cid: "number". Please fix, while deprecated and will not work in next versions.
javascript.0 2017-01-25 05:39:27.612 warn Wrong type of homepilot.0.devices.Rohrmotor-Steuerung.10036.cid: "number". Please fix, while deprecated and will not work in next versions.
Ich hoffe Du kannst da was machen…
Wenn Du irgendwelche Daten brauchst sag einfach bescheid.
Viele Grüße Michael
1924_screenshot.jpeg -
Hallo zusammen, ich weiss nicht ob ich ein neues Topic aufmachen sollte für mein Problem, da es es sich auch um den Homepilot handelt …
Wie auch immer, mein Problem, nach zufügen des Adapters und der richtigen IP Adresse für den Hompilot,sieht alles gut aus, siehe LOG:
homepilot.0 2017-01-25 13:13:50.483 info Objects for Connect-Aktor(10005) created homepilot.0 2017-01-25 13:13:50.482 info Objects for Connect-Aktor(10004) created homepilot.0 2017-01-25 13:13:50.480 info Objects for Schaltaktor2-Kanal(10006) created homepilot.0 2017-01-25 13:13:50.479 info Objects for Connect-Aktor(10003) created homepilot.0 2017-01-25 13:13:50.477 info Objects for Connect-Aktor(10002) created homepilot.0 2017-01-25 13:13:50.447 info Objects for Connect-Aktor(10001) created homepilot.0 2017-01-25 13:13:50.426 info Objects for Schaltaktor2-Kanal(10007) created homepilot.0 2017-01-25 13:13:37.957 info starting. Version 0.2.0 in /opt/iobroker/node_modules/iobroker.homepilot, node: v4.7.2 host.TomsIOBroker 2017-01-25 13:13:36.059 info instance system.adapter.homepilot.0 started with pid 1016 host.TomsIOBroker 2017-01-25 13:13:36.048 info object change system.adapter.homepilot.0 host.TomsIOBroker 2017-01-25 13:13:33.360 info object change system.adapter.homepilot.0 iobroker 2017-01-25 13:00:46.130 info exit 0 iobroker 2017-01-25 13:00:46.112 info host.TomsIOBroker object system.adapter.homepilot.0 created host.TomsIOBroker 2017-01-25 13:00:46.102 info object change system.adapter.homepilot.0 iobroker 2017-01-25 13:00:46.069 info host.TomsIOBroker object system.adapter.homepilot.0.alive created iobroker 2017-01-25 13:00:46.024 info host.TomsIOBroker object system.adapter.homepilot.0.connected created iobroker 2017-01-25 13:00:45.992 info host.TomsIOBroker object system.adapter.homepilot.0.memHeapUsed created iobroker 2017-01-25 13:00:45.960 info host.TomsIOBroker object system.adapter.homepilot.0.memHeapTotal created iobroker 2017-01-25 13:00:45.926 info host.TomsIOBroker object system.adapter.homepilot.0.memRss created iobroker 2017-01-25 13:00:45.890 info host.TomsIOBroker object system.adapter.homepilot.0.uptime created iobroker 2017-01-25 13:00:45.856 info host.TomsIOBroker object homepilot.0.station created iobroker 2017-01-25 13:00:45.827 info host.TomsIOBroker object homepilot.0.station.ip created iobroker 2017-01-25 13:00:45.794 info host.TomsIOBroker object homepilot.0.station.UNREACH created iobroker 2017-01-25 13:00:45.760 info host.TomsIOBroker object homepilot.0.devices created iobroker 2017-01-25 13:00:45.728 info host.TomsIOBroker object homepilot.0.devices.json created iobroker 2017-01-25 13:00:45.712 info host.TomsIOBroker create instance homepilot iobroker 2017-01-25 13:00:45.630 info host.TomsIOBroker object system.adapter.homepilot created iobroker 2017-01-25 13:00:45.512 info upload [0] homepilot.admin /opt/iobroker/node_modules/iobroker.homepilot/admin/homepilot.png homepilot.png image/png iobroker 2017-01-25 13:00:45.412 info upload [1] homepilot.admin /opt/iobroker/node_modules/iobroker.homepilot/admin/index.html index.html text/html iobroker 2017-01-25 13:00:45.385 info got /opt/iobroker/node_modules/iobroker.homepilot/admin iobroker 2017-01-25 13:00:45.362 info host.TomsIOBroker install adapter homepilot iobroker 2017-01-25 13:00:14.878 info npm install iobroker.homepilot --production --prefix "/opt/iobroker" (System call) iobroker 2017-01-25 13:00:13.173 info add homepilot
Ich kann die Objekte aber im Objektbaum nicht finden
Muss ich noch irgendetwas machen?
Danke und Gruß
Tom
-
Habe gerade mal probiert per Javascript auf den Datenpunkt Level zu zugreifen. Das geht!
30% Rollade geht ohne Probleme. Super! Das ist doch schon mal was.
Aber im CloudAdapter kann ich den Level Datenpunkt nicht als Gerät hinzufügen. Die CID geht (bringt an der Stelle aber nichts). Wahrscheinlich musst Du noch irgendwelche Einstellungen bezüglich Eingabefreigaben anpassen. Im Objektbaum kann ich ja auch keine Werte unter LEVEL eintragen.
Und wie oben bereits geschrieben schmiert der Adapter hin wieder mal mit der geposteten Fehlermeldung ab. Nach völlig unterschiedlichen Laufzeiten und nicht reproduzierbar.
Viele Grüße Micky
-
Das hatte ich glaube ich auch mal. Hast Du die Instanz des HP mal beendet und neu gestartet?
Viele Grüße Micky
-
@ Tom: Das dauert etwas. Seit deinem Posting müsste der Objektbaum jetzt da sein.
Frage: Kannst du mir sagen, welche Seriennummer der "Connect-Aktor" hat und was er macht (Seriennummer in der JSON)? Ist das dieser https://www.rademacher.de/hausautomation-homepilotr/markisen/duofern-connect-aktor/ mit der Typ-Nummer 9477?
@ Mickey: Wann kommen diese Warnungen?
` > Und solche Warnungen kommen auch:javascript.0 2017-01-25 05:39:27.616 warn Wrong type of homepilot.0.devices.Schaltaktor2-Kanal.10070.cid: "number". Please fix, while deprecated and will not work in next versions.
javascript.0 2017-01-25 05:39:27.612 warn Wrong type of homepilot.0.devices.Rohrmotor-Steuerung.10036.cid: "number". Please fix, while deprecated and will not work in next versions. ` und welche Werte versuchst du gerade in den Datenpunkt cid zu schreiben?
Denn der Wert,d er reingeschrieben werden muss sollte ein STRING sein, kein NUMBER. Also noch "Häkchen" drum.
Gruß
Pix
-
Immer wenn ich eine Rolllade per Script auf oder abfahre.
Werde ich aber jetzt ändern, da LEVEL per Script ja jetzt geht.
Aber Du hast recht, ich habe das CID Kommando als zahl angegeben. Ohne "
Viele Grüße Micky
-
Geht es denn mit Häkchen? Ich kann im Adapter-Skript ein toString() einbauen. Das fängt den Fehler ab.
-
Noch etwas ist mir gerade aufgefallen.
setState("homepilot.0.devices.Rohrmotor-Steuerung.10036.level"/level Wohnzimmertür/, 0); gibt einen Fehler:
homepilot.0 2017-01-25 18:56:29.609 warn Wrong type of data input. Please try again
setState("homepilot.0.devices.Rohrmotor-Steuerung.10036.level"/level Wohnzimmertür/, 1); geht. Auch 100 oder alle Zahlen dazwischen.
0 für 0% nimmt er nicht.
Viele Grüße Micky
-
Ja, mit Häkchen z.B. "10", geht es.
-
Noch etwas ist mir gerade aufgefallen.
setState("homepilot.0.devices.Rohrmotor-Steuerung.10036.level"/level Wohnzimmertür/, 0); gibt einen Fehler:
homepilot.0 2017-01-25 18:56:29.609 warn Wrong type of data input. Please try again
setState("homepilot.0.devices.Rohrmotor-Steuerung.10036.level"/level Wohnzimmertür/, 1); geht. Auch 100 oder alle Zahlen dazwischen.
0 für 0% nimmt er nicht.
Viele Grüße Micky `
Dieser Fehler sollte mit der neuen Version 0.2.3 gefixt sein. Der RegExp-Abgleich hatte bisher die 0 nicht einbezogen :roll: .Die Beschreibbarkeit des Level(_inverted)-Datenpunktes ist im Adapter eingentlich auf "false" gestellt.
! ````
adapter.setObjectNotExists(path + '.level_inverted', {
type: 'state',
common: {
name: 'level inverted ' + devicename,
desc: 'level inverted (like Homematic) of device ' + deviceid,
type: 'number',
role: 'level.blind',
min: 0,
max: 100,
unit: '%',
read: true,
write: false
},
native: {}
});Umso mehr wundert mich, dass die Beschreibung aus Javascript oder VIS funktioniert. Es wundert mich aber nicht, dass sie aus dem Cloud-Adapter nicht funktioniert. Pix
-
Werde ich morgen mal installieren.
Aber wieso hast denn den Level schreibgeschützt? Bei Rollläden ist dieser Datenpunkt doch auch für die Steuerung vorgesehen oder nicht?
Kannst du das nicht einfach freigeben. Es scheint ja zu funktionieren. Zumindest per Script.
Vg Micky
-
@pix:Kannst du das nicht einfach freigeben. Es scheint ja zu funktionieren. Zumindest per Script. `
Ok, habe ich mal eben geändert. Muss die Instanz wieder löschen. Immer noch Version 0.2.3Pix
-
Habe 0.2.3 installiert.
Level geht jetzt. Kann man unter Objekte Werte im Level Datenpunkt eintragen und mit Alexa funktioniert es auch.
Mann kann zwar nicht sagen "fahre Rolllade im Büro nach unten", aber "fahre Rolllade auf 0%" geht. Ich denke aber mal das ist eher ein Problem vom CloudAdapter.
Ich glaube ich habe auch eine Idee, wann diese Fehlermeldungen hier kommen:
host.iobroker 2017-01-26 05:54:55.231 error instance system.adapter.homepilot.0 terminated with code 0 (OK)
homepilot.0 2017-01-26 05:54:55.184 info Homepilot adapter stopped
homepilot.0 2017-01-26 05:54:55.183 info terminating homepilot adapter
homepilot.0 2017-01-26 05:54:55.179 error at emitNone (events.js:72:20)
homepilot.0 2017-01-26 05:54:55.179 error at IncomingMessage.g (events.js:260:16)
homepilot.0 2017-01-26 05:54:55.179 error at IncomingMessage. (/opt/iobroker/node_modules/iobroker.homepilot/node_modules/request/request.js:1001:12)
homepilot.0 2017-01-26 05:54:55.179 error at Request.emit (events.js:169:7)
homepilot.0 2017-01-26 05:54:55.179 error at emitOne (events.js:77:13)
homepilot.0 2017-01-26 05:54:55.179 error at Request. (/opt/iobroker/node_modules/iobroker.homepilot/node_modules/request/request.js:1081:10)
homepilot.0 2017-01-26 05:54:55.179 error at Request.emit (events.js:172:7)
homepilot.0 2017-01-26 05:54:55.179 error at emitTwo (events.js:87:13)
homepilot.0 2017-01-26 05:54:55.179 error at Request.self.callback (/opt/iobroker/node_modules/iobroker.homepilot/node_modules/request/request.js:186:22)
homepilot.0 2017-01-26 05:54:55.179 error at Request._callback (/opt/iobroker/node_modules/iobroker.homepilot/main.js:448:51)
homepilot.0 2017-01-26 05:54:55.179 error TypeError: Cannot read property 'length' of undefined
homepilot.0 2017-01-26 05:54:55.161 error uncaught exception: Cannot read property 'length' of undefined
Ich glaube das passiert immer dann, wenn der Homepilot beschäftigt ist (z.B. gerade eine Szene ausführt) und der Adapter versucht, die Daten vom HP abzuholen.
Habe mal das Abfrage Intervall auf 60 Sekunden gestellt und ein paar Szenen ausgeführt. Alles OK.
Intervall auf standardmäßige 12 Sekunden gestellt, schon gab es nach Ausführung einer Szene einen crash.
Ich habe aber auch ein relativ großes Homepilot System, mit ca. 90 ansteuerbaren Geräten. Könnte sein, dass es da etwa länger dauert wenn die JSON Abfrage vom Homepilot zurückkommt.
Aber wenn dies wirklich der Fall sein sollte, dann sollte Dein Adapter diesen Fehler irgendwie kapseln, z.B. die Anfrage 3 Sekunden später noch mal durchführen und wenn es dann nimmer noch nicht kappt dann noch mal 3 Sekunden später.
Ich weis aber nicht ob das wirklich das Problem ist. Kann auch alles Zufall gewesen sein. Ist nur ne Vermutung. Ich bin mir nicht sicher was die Fehlermeldungen bedeuten.
Aber auf jeden Fall nochmal vielen Dank für Deine schnelle Arbeit! Echt TOP.
Mal abgesehen von dem obigen Problem scheint ja jetzt alles einwandfrei zu laufen.
Viele Grüße Micky