NEWS
IoBroker.homepilot Adapter
-
Hallo,
der Homepilot-Adapter ist fertig. Die genaue Beschreibung ist auf Github in der https://github.com/Pix–-/ioBroker.homepilot/blob/master/README.md. Auch ein Beispiel-Widget für VIS zur Steuerung der Rollläden mit einem RolloTron Gurtwickler findet sich dort. Ich habe leider keine anderen DuoFern Geräte, deshalb bitte ich um Feedback, wie sich zum Beispiel der Universalaktor oder andere Schalter und Dimmer verhalten.
https://github.com/Pix–-/ioBroker.homepilot
Die Nutzung setzt natürlich die Homepilot Basistation voraus. Ich habe die http://cdn.idealo.com/folder/Product/3850/7/3850719/s1_produktbild_mid/rademacher-homepilot-9496-inkl-duofern-usb-stick.jpg, vermute aber, die zweite arbeitet genauso. Auch dazu bitte ich um Feedback.
Bisher sind keine Gruppen oder Favoriten mit eingebaut. So tief bin ich noch nicht drin im Homepilot, habe ja eigentlich Homematic :lol:
Wenn jemand z.B. 10 Rollläden gleichzeitig steuern will, empfehle ich ihm den Scenes Adapter. Damit kann er die Datenpunkte dann schön um Millisekunden versetzt (Funkhygiene) starten. Aber natürlich geht das auch im Javascript Adapter (ich würde setStateDelayed nehmen).
Viel Spaß!
Pix
-
Ok, erster Test auf dem Produktivsystem und schon ein Rückschlag.
`2016-06-15 17:57:29.382 - [33mwarn[39m: homepilot.0 Wrong type of data input. Please try again[/code]` Kümmere mich. Wartet auf 0.0.2!
-
Danke für die schnelle Umsetzung! Die Bugs bekommst Du auch noch hin!
Gruß
Wolfgang
-
Frage: Wie kann ich bei subscribeStates einstellen, dass nur Änderungen vom web-Adapter (bzw. alle Änderungen, nur nicht die vom homepilot.0) gezeigt werden sollen?
Bisher:
adapter.subscribeStates('*.level*');
stateChange: function(id, state) { //adapter.log.debug('stateChange ' + id + ' ' + JSON.stringify(state)); //adapter.log.debug('input: ' + state.val.toString()); controlHomepilot(id, state.val.toString()); },
Ich vermute, die Aktualisierung (alle 15s) triggert den subscribe. Ich musste wegen der VIS Widgets leider für das Agieren (Kommandos schreiben) und Lesen (Daten aus Homepilot) den selben Datenpunkt verwenden. Jetzt wird alle 15s der neue/alte Zustand der Rollläden in den Datenpunkt "level" geschrieben und damit der subscribe getriggert.
Pix
-
installation von Github hat schon mal funktioniert
Werde die Tage mal an die Visu gehen
Danke an pix!
Gruß
Wolfgang
-
@pix:Frage: Wie kann ich bei subscribeStates einstellen, dass nur Änderungen vom web-Adapter (bzw. alle Änderungen, nur nicht die vom homepilot.0) gezeigt werden sollen?
Bisher:
adapter.subscribeStates('*.level*');
stateChange: function(id, state) { //adapter.log.debug('stateChange ' + id + ' ' + JSON.stringify(state)); //adapter.log.debug('input: ' + state.val.toString()); controlHomepilot(id, state.val.toString()); }, ```` `
Wieso brauchst du die States von web.0?
Ich glaube nicht, dass subscribe 2 Sternen unterstützt. Du kannst aber ruhig so machen:
adapter.subscribeStates('*');
stateChange: function(id, state) { if (!id || !state || state.ack) return; if (!id.match(/\.level\w*$/) return; //adapter.log.debug('stateChange ' + id + ' ' + JSON.stringify(state)); //adapter.log.debug('input: ' + state.val.toString()); controlHomepilot(id, state.val.toString()); },
-
Fehler beseitigt. Dank an Bluefox für den Hinweis:
@Bluefox:Ich glaube nicht, dass subscribe 2 Sternen unterstützt. `
0.0.2 ist da!Gruß
Pix
-
Habe von Github noch nie was installiert. Npm geht offenbar (noch) nicht.
root@raspberrypi:/opt/iobroker# npm install iobroker.homepilot npm ERR! Linux 4.4.11-v7+ npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "iobroker.homepilot" npm ERR! node v4.4.5 npm ERR! npm v2.15.5 npm ERR! code E404 npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/iobroker.homepilot npm ERR! 404 npm ERR! 404 'iobroker.homepilot' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url. npm ERR! Please include the following file with any support request: npm ERR! /opt/iobroker/npm-debug.log
-
Das geht analog hierzu:
http://forum.iobroker.net/viewtopic.php … 717#p27717
in dem Fall aber den Pfad zu homepilot im Repo von pix herausfinden.
Gruß
Rainer
-
Das geht analog hierzu:
http://forum.iobroker.net/viewtopic.php … 717#p27717
in dem Fall aber den Pfad zu homepilot im Repo von pix herausfinden.
Gruß
Rainer `
Danke Rainer,hat geklappt, war doch so einfach
Also Homepilot-Adapter läuft! Danke an dieser Stelle an Pix!
Jetzt teste ich erstmal…
-
Ich bitte die Tage um Rückmeldung, vor allem, ob auch andere Geräte, als Gurtwickler laufen.
Ich habe ab Mitte nächster Woche viel zu tun und könnte das vorher noch fixen. Dann kann ich den Adapter auf npm packen und alles wird gut :lol:
Pix
-
Rückmeldung: Funktioniert alles so wie es soll, auch die Universalaktoren.
Eine Frage wäre noch: Kann bei den Schaltaktoren anstatt LEVEL ein STATE eingeführt werden?
-
Hallo pix,
Die duofern comfort und standard funktionieren soweit, lediglich die Endposition oben wird nicht ganz erreicht. Es bleiben 2- 3 % geöffnet, wenn ich sie mit dem hqwidget manuell verfahre.
Gruss Wolfgang
-
Hallo pustekuchen,
@pustekuchen:Rückmeldung: Funktioniert alles so wie es soll, auch die Universalaktoren.
Eine Frage wäre noch: Kann bei den Schaltaktoren anstatt LEVEL ein STATE eingeführt werden? `
Es ist sicher möglich, beim Anlegen der States abzufragen, ob das Gerät ein "Schaltaktor" ist. Aber gemäß dieser JSON! ````
{
"response": "get_visible_devices",
"status": "ok",
"devices": [{
"did": 10009,
"name": "Gartenbeleuchtung",
"description": " ",
"initialized": 1,
"position": 100,
"productName": "Universal-Aktor",
"serial": "43",
"statusesMap": {
"Position": 100,
"Manuellbetrieb": 0
},
"status_changed": 1401217204,
"deviceGroup": 1,
"iconSet": {
"name": "Ein-Aus-Schalter",
"description": "Ein- Aus-Schalter Icon-Set",
"strMin": "An",
"strMax": "Aus",
"valMax": 100,
"valMin": 0,
"sprite": {
"imageUri": "images/sets/ein-aus-schalter1.png",
"numTiles": 2
},
"k": "iconset5"
},
"iconSetInverted": 0,
"paired": 0,
"statusValid": true,
"uid": "43 XX XX",
"visible": true,
"groups": [5003],
"favoredId": 5013,
"properties": {
"generic": 3,
"wind": 3,
"trigger": 3,
"closingContact": 3,
"dusk": 3,
"smoke": 3,
"sun": 3,
"temperature": 3,
"manual": 3,
"time": 2,
"dawn": 3,
"dust": 3,
"favored": 0,
"smartphone": 3,
"motion": 3,
"temperator": 3,
"warning": 3,
"rain": 3,
"states": [{
"cfgKey": "setSunAuto",
"cfgId": 105,
"state": 0
},
{
"cfgKey": "setEveningAuto",
"cfgId": 107,
"state": 1
},if (level == 100) state = true;
else state = false;Dann sollten VIS Widgets mit Schalter auch funktionieren. Ist es das, was du meinst? Gruß Pix
-
Hallo Wolfgang,
@leo013:Hallo pix,
Die duofern comfort und standard funktionieren soweit, lediglich die Endposition oben wird nicht ganz erreicht. Es bleiben 2- 3 % geöffnet, wenn ich sie mit dem hqwidget manuell verfahre.
Gruss Wolfgang ` danke für die Rückmeldung. Die Position/Level Angabe vom Widget wird 1:1 an Homepilot weitergegeben. Es gibt keine Umrechnung, kein Offset. Wenn man 100 eingibt (egal, ober per Widget oder von Hand), wird auch 100 an die Zentrale geschickt. Da muss das Problem woanders liegen. Geht denn der Rollladen sonst ganz nach oben?
Gruß
Pix
-
Hallo,
ich habe noch über ein weiteres Problem (zumindest bei mir) nachgedacht. Ich glaube, es läßt sich eher im Widget, als im Adapter lösen.
Meine Rollläden sind bei 0% geöffnet, bei 100% geschlossen. Der Endpunkt ist "geschlossen" ist so gewählt, dass wirklich kein Licht mehr durchfällt, also die Lamellen ohne Schlitze direkt aufeinander liegen. Das Level ist 100%.
Wenn ich nun soweit öffne, dass die Lamellen ca. 20cm über dem Fensterbrett stehen, dann ist das Level 50%. Im Widget verdeckt der Rollladen das halbe Fenster (wie bei 50% anzunehmen), tatsächlich verdeckt er aber noch fast 80% der Scheibe, da ja die erste Hälfte der Laufzeit für das "Auseinanderziehen" der Lamellen gebraucht wurde, bis sich die unterste Lamelle überhaupt erst nach oben bewegt.
Wie kann ich im Adapter oder ein Widget Entwickler diesen "Offset" einbauen?
Gruß
Pix
-
Hallo pix,
Das ist doch die übliche Frage im HM-Forum.
Was willst du dir denn anzeigen lassen, wenn der Rollladen ganz unten ist? -20%??
Gruß
Rainer
-
Hallo Pix,
der Gurtwickler fährt nach oben und stoppt, es fehlen aber 2-3%.
Wenn ich von Hand danach die Auf-Taste am Gurtwickler betätige, fährt er in die Endposition.
in Dashui funktioniert die Steuerung tadellos und erreicht die Endposition
Gruß
Wolfgang
-
Hallo pix,
Das ist doch die übliche Frage im HM-Forum. ` Nun, da bin ich nicht mehr so oft unterwegs 8-)
@Homoran:Was willst du dir denn anzeigen lassen, wenn der Rollladen ganz unten ist? -20%?? `
Ich weiß auch nicht genau, was ich will. Warte auf Inspiration :shock: Mir ist klar, dass ein Wert von mehr als 100% (und kleiner als 0%) nicht geht. Deshalb vielleicht so:Das Widget soll bei realem Level 80% schon 100% verdecken und die Grafik auch bis realem LeveL 100% nicht mehr ändern. Beim Öffnen dann andersherum. Das Widget soll ab 80% und weniger erst das Fenster langsam freigeben.
So verständlich?
Gruß
Pix
Das Problem ist ja, dass der Datenpunkt, der die Basis für die Berechnung der Grafik ist, auch zur Steuerung genutzt wird. So könnte ich einfach im Adapter einen "Display" Datenpunkt erstellen, der mit einem Offset berechnet wird.
-
@pix:Hallo pustekuchen,
@pustekuchen:Rückmeldung: Funktioniert alles so wie es soll, auch die Universalaktoren.
Eine Frage wäre noch: Kann bei den Schaltaktoren anstatt LEVEL ein STATE eingeführt werden? `
Es ist sicher möglich, beim Anlegen der States abzufragen, ob das Gerät ein "Schaltaktor" ist. Aber gemäß dieser JSON! ````
{
"response": "get_visible_devices",
"status": "ok",
"devices": [{
"did": 10009,
"name": "Gartenbeleuchtung",
"description": " ",
"initialized": 1,
"position": 100,
"productName": "Universal-Aktor",
"serial": "43",
"statusesMap": {
"Position": 100,
"Manuellbetrieb": 0
},
"status_changed": 1401217204,
"deviceGroup": 1,
"iconSet": {
"name": "Ein-Aus-Schalter",
"description": "Ein- Aus-Schalter Icon-Set",
"strMin": "An",
"strMax": "Aus",
"valMax": 100,
"valMin": 0,
"sprite": {
"imageUri": "images/sets/ein-aus-schalter1.png",
"numTiles": 2
},
"k": "iconset5"
},
"iconSetInverted": 0,
"paired": 0,
"statusValid": true,
"uid": "43 XX XX",
"visible": true,
"groups": [5003],
"favoredId": 5013,
"properties": {
"generic": 3,
"wind": 3,
"trigger": 3,
"closingContact": 3,
"dusk": 3,
"smoke": 3,
"sun": 3,
"temperature": 3,
"manual": 3,
"time": 2,
"dawn": 3,
"dust": 3,
"favored": 0,
"smartphone": 3,
"motion": 3,
"temperator": 3,
"warning": 3,
"rain": 3,
"states": [{
"cfgKey": "setSunAuto",
"cfgId": 105,
"state": 0
},
{
"cfgKey": "setEveningAuto",
"cfgId": 107,
"state": 1
},if (level == 100) state = true;
else state = false;Dann sollten VIS Widgets mit Schalter auch funktionieren. Ist es das, was du meinst? Gruß Pix `
ioBroker.homepilot 0.0.3 ist da mit einem neuen Datenpunkt "state". Der wird aber nur angelegt, wenn man einen Universal-Aktor (Produktseriennummer 43) hat. Bitte testen, ich habe nämlich keinen. Bitte Doku in der Readme lesen, danke!
Gruß,
Pix