NEWS
[Neuer Adapter] Homepilot20
-
@mcm1957
Ich warte erst mal ab. @homecineplexx hat sich seit ein paar Tagen nicht gemeldet. Er ist vermutlich im Urlaub.Bin übrigens sehr froh, dass es diesen Adapter gibt. Ohne ihn hätte ich kein ioBroker-System zu Hause. Deswegen stört es mich nicht, wenn es den Adapter nur auf Git gibt.
-
@pk68 said in [Neuer Adapter] Homepilot20:
@mcm1957
Ich warte erst mal ab. @homecineplexx hat sich seit ein paar Tagen nicht gemeldet. Er ist vermutlich im Urlaub.Bin übrigens sehr froh, dass es diesen Adapter gibt. Ohne ihn hätte ich kein ioBroker-System zu Hause. Deswegen stört es mich nicht, wenn es den Adapter nur auf Git gibt.
Hallo
ja kann ich machen, aber wie kommst du darauf, dass ich mich ein paar tage nicht gemeldet habe? wo hätte ich mich melden sollen und aufgrund welchen problems???
ich werde mir das mit den gurtwickler anschauen -
@homecineplexx
Super, danke für die schnelle Hilfe. Nach dem Update werden die Datenpunkte für den Gurtwicker korrekt angelegt und die Datenpunkte Position und Action scheinen zu funktionieren. Ich schaffe es zeitlich erst morgen den Gurtwickler richtig zu installieren (der liegt momentan auf dem Tisch). Melde mich dann nochmal.
Bitte vergiss die erste Zeile von meinem letzten Post. Die war Müll. Sorry. -
@homecineplexx
Der Gurtwickler ist nun installiert. Funktioniert alles wie es soll. Vielen Dank für den schnellen Support. -
Hi, ich habe von Github die Version 0.0.66 des Adapters installiert. Damit habe ich dann versucht, ein Homepilot Gateway Premium 15001001 mit Software 1.1.19 anzusprechen. Das Gateway-Kennwort ist übrigens nicht gesetzt.
Die Eingabe der IP im Admin führt dann nach dem Instanzstart jedoch zu Fehlern nach dem Schema
"Transmitter sensors -> Cannot connect to Homepilot: {"statusCode":404,"body":"{\"error_description\":\"GET URI not foundhttp://127.0.0.1:5050/v4/devices\",\"error_code\":5002}"}"
Der kommt dann auch für "Scenes", "Read actuator" und "Read sensors" und nichts geht in der Instanz.
Du verwendest zum Auslesen in 0.0.66 fest API-URLs wie z.B.: 'http://' + ip + '/v4/devices?devtype=Actuator'
Die gibt es auf dem Homepilot Gateway Premium Smart so wohl nicht mehr.
Mit dem kleine Hack, statt der IP "<homepilot ip>" den Text "<homepilot ip>/hp" im Admin einzugeben, funktionert das Auslesen und Bedienen von Aktuatoren dann aber. Ist das so schon hier bekannt? Das ergibt dann bei Dir intern
http://<homepilot ip>/hp/devices?devtype=Actuator
und liefert ein wunderbares JSON zurück. Gut, dass Du keinen sanity-Check machst....
Wenn man den Haken bei "Device is Bridge" setzt, gibt es auch keine Warnungen im ioBroker-Log mehr.
Betriebssystem:linux Architektur:x64 Node.js:v20.18.1 NPM:10.8.2 Admin: v7.1.5 Controller: 7.0.3
Viele Grüße, Thomas
-
Danke für die Analyse. Pack die Info doch sinnvoller Weise in ein ISSUE beim Adapter rein. Hier geht das wahrscheinlich verloren.
-
@stabilostick hallo
danke für die Info. nachdem ich leider dieses Gateway nicht habe, kann ich das auch nicht implementieren, außer du hilfst mir da ein wenig.
dazu würde ich dich aber bitten mir ein Ticket im GIT zu schreiben und wir schauen das wir das gemeinsam hinbekommen!DANKEEEE
-
@homecineplexx
Hallo, mal eine Frage zu Version 0.0.66 des Adapters. Man kann ja nun die Synczeiten der 4 Kategorien separat einstellen. Ist es ok, dort eine 0 einzutragen, um die Synchronisation zu deaktivieren? Die Linie unter der Zahl wird dann rot gefärbt. Ist das ein Hinweis auf eine fehlerhafte Eingabe und nur die Info das keine Synchronisation mehr stattfindet? Bin kein Javascript-Experte, aber um zu ermitteln, ob eine Abfrage durchgeführt werden soll, wird im Quelltext eine Division mit Rest und der Synczeit als Divisor durchgeführt. Deswegen sollte die Synczeit nicht 0 sein? -
@pk68 stimmt, das schau ich mir dann mal an....danke für den hinweis!
-
@pk68 so, ich hab mir das angeschaut und so wie du das schreibst stimmt es natürlich nicht.
man kann zwar bei den 4 Sync-Zeiten eine 0 eintragen, bleibt man aber länger mit der Maus drüber, kommt ein Text: "Wert muss größer als oder gleich 1 sein"
Speichert man dennoch so eine 0, ist auch kein Thema, denn im Code wird darauf abgefragt und sollte eine SyncZeit 0 oder null sein, wird auf den default gesetzt.Keine Ahnung welchen Code du meinst mit: "wird im Quelltext eine Division mit Rest und der Synczeit als Divisor durchgeführt"
lg
-
@homecineplexx sagte in [Neuer Adapter] Homepilot20:
@pk68 so, ich hab mir das angeschaut und so wie du das schreibst stimmt es natürlich nicht.
man kann zwar bei den 4 Sync-Zeiten eine 0 eintragen, bleibt man aber länger mit der Maus drüber, kommt ein Text: "Wert muss größer als oder gleich 1 sein"Ich will nicht streiten. Den Hilfetext beim Mouseover habe ich nicht bemerkt.
Speichert man dennoch so eine 0, ist auch kein Thema, denn im Code wird darauf abgefragt und sollte eine SyncZeit 0 oder null sein, wird auf den default gesetzt.
Wenn man die Sync-Zeiten ändert, dann werden ja die Sync-Zeiten im Log ausgegeben.
Lässt man das Feld für die Sync-Zeit leer, dann wird die Defaultzeit verwendet.
Trägt man ein 0 ein, wird die 0 übernommen.2025-01-09 16:28:41.774 - info: homepilot20.0 (900907) starting. Version 0.0.66 (non-npm: homecineplexx/ioBroker.homepilot20) in /opt/iobroker/node_modules/iobroker.homepilot20, node: v20.18.1, js-controller: 7.0.6 2025-01-09 16:28:41.802 - info: homepilot20.0 (900907) Homepilot station and ioBroker synchronize actuators every 4s 2025-01-09 16:28:41.803 - info: homepilot20.0 (900907) Homepilot station and ioBroker synchronize sensors every 0s 2025-01-09 16:28:41.804 - info: homepilot20.0 (900907) Homepilot station and ioBroker synchronize transmitters every 21s 2025-01-09 16:28:41.805 - info: homepilot20.0 (900907) Homepilot station and ioBroker synchronize scenes every 23s
Die 0 ist für den Code eine gültige Zahl?
main.jssync_sensors = (adapter.config.sync_sensors === undefined || adapter.config.sync_sensors.length === 0) ? 3 : parseInt(adapter.config.sync_sensors,10); adapter.log.info('Homepilot station and ioBroker synchronize sensors every ' + sync_sensors + 's');
Wenn man beim Adapter die Protokollebene auf Debug umstellt, werden ja die Abfragen mitgeloggt.
Synctime sensors: 3s2025-01-09 16:31:28.873 - debug: homepilot20.0 (901024) reading homepilot sensor JSON ... 2025-01-09 16:31:28.896 - debug: homepilot20.0 (901024) Homepilot sensor data: { "response": "get_meters", "meters": [] } 2025-01-09 16:31:28.914 - debug: homepilot20.0 (901024) finished reading Homepilot additional Sensor 2025-01-09 16:31:28.915 - debug: homepilot20.0 (901024) Finished reading Homepilot sensor data 2025-01-09 16:31:31.876 - debug: homepilot20.0 (901024) reading homepilot sensor JSON ... 2025-01-09 16:31:31.886 - debug: homepilot20.0 (901024) Homepilot sensor data: { "response": "get_meters", "meters": [] } 2025-01-09 16:31:31.901 - debug: homepilot20.0 (901024) finished reading Homepilot additional Sensor 2025-01-09 16:31:31.901 - debug: homepilot20.0 (901024) Finished reading Homepilot sensor data 2025-01-09 16:31:34.878 - debug: homepilot20.0 (901024) reading homepilot sensor JSON ... 2025-01-09 16:31:34.890 - debug: homepilot20.0 (901024) Homepilot sensor data: { "response": "get_meters", "meters": [] } 2025-01-09 16:31:34.911 - debug: homepilot20.0 (901024) finished reading Homepilot additional Sensor 2025-01-09 16:31:34.912 - debug: homepilot20.0 (901024) Finished reading Homepilot sensor data
Bei Synctime sensors 0s erfolgt keine Ausgabe im Log, also keine Abfrage der Sensordaten?
Keine Ahnung welchen Code du meinst mit: "wird im Quelltext eine Division mit Rest und der Synczeit als Divisor durchgeführt"
Den Code den ich meine ist in der main.js Zeile 452 (hier Zeile 9):
callMainInterval = setInterval( async function() { try{ if (isRunning) { return; } isRunning = true; counter++; await Measure('station.Overall_Sync_Time', async () => { if (counter % sync_sensors === 0){ adapter.log.debug('reading homepilot sensor JSON ...'); await Measure('station.Sync_Sensors_Time', async () => { await readSensor('http://' + ip + '/v4/devices?devtype=Sensor'); }); }
Gruß
-
@pk68 du hast vollkommen recht. sorry, ich hab einfach drüber gelesen.
ich hab's jetzt in der 0.0.67er Version geändert und so eingebaut, dass wenn eine SyncTime == 0 ist, wird sie aufs default gesetzt.DANKE
-
@homecineplexx
Nur so als Idee. Man lässt die 0 als gültige Eingabe zu und 0 heißt dann keine Abfrage der Daten.Bei meiner überschaubaren Rademacher-Installation brauchen nur die Aktoren abgefragt werden. Die anderen drei Abfragen sind nicht nötig. Da wäre die Möglichkeit, diese abzuschalten, sinnvoll. Im Gegenzug könnte man mit der Sync-Zeit für die Aktoren heruntergehen.
-
@pk68 guter Input - DANKE. hab ich mit der 0.0.68er umgebaut. Probiers mal aus
lg
-
Super, danke für die Anpassung. Aus meiner Sicht funktioniert alles wie es soll.
-
@pk68 BITTESCHÖN und Danke für die Inputs.
oft ist man auch ein bissl Betriebsblind