Closed Fuma2013 closed 5 years ago
Hallo Thomas,
das Problem habe ich auch gerade. Es liegt definitiv an der schieren Anzahl an Datenpunkten. Ich habe dafür noch keine Richtige Lösung parat. Vielleicht sollte man, ähnlich wie beim Viesmann-Adapter das refresh Intervall Datenpuntgenau steuern können? Zudem sind viele Datenpunkte nutzlos, da ließe sich vielleicht einiges zusammenfassen. Ich setzte mich in den kommenden Wochen mal dran.
Hallo t4qjXH8N
Besten dank für deine Rückmeldung. Ja viele Datenpunkte sind nutzlos. Wäre super wenn du da was zaubern könntest. Gib gerne bescheid wenn ich was soll.
Gruß Thomas
Hallo Christian,
ich hatte das gleiche Problem mit hoher Systembelastung und habe mir deshalb unter Node-Red einen Flow erstellt, der alle 30 Sekunden die Stati abfragt, welche mich interessieren. (siehe meinen github Eintrag). Der läuft ohne Probleme.
Bei mir läuft ioBroker im Docker auf einer Synology DS716+II mit 8 GB Hauptspeicher als Master einer Multihost-Umgebung. Darauf laufen ca. 30 Adapter und sehr viele Node-red Flows. Insgesamt habe ich nur 1,5% CPU Belastung inkl. der Node-Red Abfrage der Gardena Smart Installation alle 30 Sekunden.
Wenn ich nun den Gardena-Adapter mit 60 Sekunden Polling laufen lasse, dann steigt die CPU-Belastung um Faktor 4-5 auf 6-7%.
Ohne Gardena Adapter habe ich bei 30 aktiven Instanzen ca. 680-700 State Changes / Minute. Mit Gardena Adapter (alle 60 Sekunden) habe ich ca. 2.500 State-/ Objekt-Changes pro Minute
Der Gardena Adapter ist übrigens der Einzige, der bei mir Objekt-Changes erzeugt. Sehr viele davon sind aus der Status Report History. Diese würde ich auf jedem Fall ausblenden.
Insgesamt sind pro Gerät eigentlich nur 20-30 Informationen interessant. Black- bzw. Whitelists könnten helfen. Nur leider ist die Gardena-Informationsstruktur alles andere als benutzerfreundlich.
Grüße Thomas
Hallo Thomas,
an genau so einer Whitelist-Lösung arbeite ich gerade. Ich habe selber einige Gardena-Smart Geräte was zu über 7000 Datenpunkten führt. Die Lösung ist weit fortgeschritten, aber ich habe im Moment leider wenig Zeit. Vielleicht schaffe ich es heute oder morgen Abend eine Testversion zu veröffentlichen.
Hallo Christian,
das hört sich gut an. Schau Dir mal meinen Eintrag zu Smart Power an. Vielleicht kannst Du das gleich mit einbauen …..
Viele Grüße Thomas
Von: Christian Vorholt notifications@github.com Gesendet: Dienstag, 11. September 2018 13:11 An: t4qjXH8N/ioBroker.gardena ioBroker.gardena@noreply.github.com Cc: tp1de tpetrick@gmx.de; Comment comment@noreply.github.com Betreff: Re: [t4qjXH8N/ioBroker.gardena] Hohe Belastung bei Datenabfrrage (#6)
Hallo Thomas,
an genau so einer Whitelist-Lösung arbeite ich gerade. Ich habe selber einige Gardena-Smart Geräte was zu über 7000 Datenpunkten führt. Die Lösung ist weit fortgeschritten, aber ich habe im Moment leider wenig Zeit. Vielleicht schaffe ich es heute oder morgen Abend eine Testversion zu veröffentlichen.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/t4qjXH8N/ioBroker.gardena/issues/6#issuecomment-420236767 , or mute the thread https://github.com/notifications/unsubscribe-auth/Aiyk-01nA3olowvSt1iawyMOEKXUH7gNks5uZ5pQgaJpZM4WLvC0 . https://github.com/notifications/beacon/Aiyk--9ZoRX6ztlw3vvo6HL-CRcphxnoks5uZ5pQgaJpZM4WLvC0.gif
Hallo
Wollte mal fragen, wie der aktuelle Stand ist?! Bin kein Programmierer... aber wenn ich dir irgenwie helfen kann oder ich mich anderweitig für deine Aufwände erkenntlich zeigen darf, sag gerne bescheid. Ich weiß deinen Aufwand zu schätzen.
Gruß Thomas
Hey,
also es gibt einen Branch "datapoint_select". Dieser kann geklont werden, er ist lauffähig. Dort kann man eine "Whitelist" erstellen und der Aufwand bei der Datenabfrage ist deutlich reduziert. Die Konfiguration und die Abfragen sollten funktionieren, aber es ist noch nicht möglich Kommandos zu versenden.
Hey und danke für die Rückmeldung.
Na ja, bräuchte die commands schon auch. Ich trau mich gar nicht fragen, aber du meintest, dass du noch an dem Adapter arbeitetest?! Bist du noch am Datenabfrage fix dran bzw. kommt da noch ne neuere Version bzw. wann? Kann den Adapter aktuell nur Temporär verwenden.
Sorry für die prägnante Fragerei und mein Angebot steht. Gerne lasse ich dir für deine Aufwände eine kleine Entschädigung zukommen. Sag gerne bescheid. Sehe deinen Aufwand nicht als selbstverständlich an.
Gruß Thomas
Bitte teste die aktuelle Version 2.0.0.
Hallo
Bekomme leider im Log diverse Fehlermeldungen
Diese nachfolgend
host.ioBroker-Rock64 | 2018-10-22 02:17:16.111 | error | instance system.adapter.gardena.0 terminated with code 0 (OK) |
---|---|---|---|
Caught | 2018-10-22 02:17:16.110 | error | by controller[0]: at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:251:12) |
Caught | 2018-10-22 02:17:16.110 | error | by controller[0]: at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20) |
Caught | 2018-10-22 02:17:16.109 | error | by controller[0]: at Decoder. |
Caught | 2018-10-22 02:17:16.109 | error | by controller[0]: at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:345:8) |
Caught | 2018-10-22 02:17:16.109 | error | by controller[0]: at Manager.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20) |
Caught | 2018-10-22 02:17:16.108 | error | by controller[0]: at Manager. |
Caught | 2018-10-22 02:17:16.107 | error | by controller[0]: at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:244:12) |
Caught | 2018-10-22 02:17:16.107 | error | by controller[0]: at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:319:9) |
Caught | 2018-10-22 02:17:16.106 | error | by controller[0]: at Socket. |
Caught | 2018-10-22 02:17:16.106 | error | by controller[0]: at /opt/iobroker/node_modules/iobroker.gardena/lib/gardenaDBConnector.js:544:25 |
Caught | 2018-10-22 02:17:16.104 | error | by controller[0]: TypeError: Cannot read property 'hasOwnProperty' of undefined |
gardena.0 | 2018-10-22 02:17:16.027 | info | terminating |
gardena.0 | 2018-10-22 02:17:16.005 | info | cleaned everything up... |
gardena.0 | 2018-10-22 02:17:16.002 | error | at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:251:12) |
gardena.0 | 2018-10-22 02:17:16.002 | error | at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20) |
gardena.0 | 2018-10-22 02:17:16.002 | error | at Decoder. |
gardena.0 | 2018-10-22 02:17:16.002 | error | at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:345:8) |
gardena.0 | 2018-10-22 02:17:16.002 | error | at Manager.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20) |
gardena.0 | 2018-10-22 02:17:16.002 | error | at Manager. |
gardena.0 | 2018-10-22 02:17:16.002 | error | at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:244:12) |
gardena.0 | 2018-10-22 02:17:16.002 | error | at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:319:9) |
gardena.0 | 2018-10-22 02:17:16.002 | error | at Socket. |
gardena.0 | 2018-10-22 02:17:16.002 | error | at /opt/iobroker/node_modules/iobroker.gardena/lib/gardenaDBConnector.js:544:25 |
gardena.0 | 2018-10-22 02:17:16.002 | error | TypeError: Cannot read property 'hasOwnProperty' of undefined |
gardena.0 | 2018-10-22 02:17:16.001 | error | uncaught exception: Cannot read property 'hasOwnProperty' of undefined |
Ich habe gerade ein paar Änderungen in den master branch eingecheckt, könntest Du die testen?
Hallo
Also erstmal Respekt. Das Whitelisten klappt super. Die Ausgewählten Datenpunkte werden auch übernommen und die Daten eingetragen. Die CPU und RAM last ist nicht mehr der rede Wert.
Ich habe aber mit dem intelligenten Datenpunkten Probleme. Wenn ich die Auswahlbox angewählt haben und die Smarten Datenpunkte Wähle, werden diese augenscheinlich nicht gefunden. (in den Objekten werden diese angelegt, aber nicht gefüllt) Die restlichen "nicht Smarten" Datenpunkte werden dennoch gefüllt.
Siehe nachfolgenden Log.
2018-10-22 16:51:26.564 - warn: gardena.0 Warning, state 7262bd4e-e22a-497a-97c8-7950099927e0abilities35b96d4c-fcf1-3e1e-ae90-1c4c85249179___9eb0a548-ad28-3aa3-a7b9-4b3faa8f4ad1 is present in the database but missing in the datagram from Gardena cloud.
Gruß Thomas
Habe gerade eine neue Version abgelegt, kannst Du die bitte testen?
Hallo Christian
Also die Daten abfrage klappt super. habe die "Smarten" Datenpunkte implementiert. Diese werden nun auch gefunden und richtig aktualisiert. Keine fehlermeldungen im Log. Adapter läuft sauber. Nach wie vor ist der traffic und die dementsprechende Belastung der CPU sehr gering. Klar sind nun ja auch um einige tausend weniger Datenpunkte.
Hatte den Aktualisierungsintervall bei 6 Sekunden. Kein Problem.
Also States abfrage geht und werde morgen mal die Commands probieren.
Grüße Thomas
Hallo
Ich nutze diesen Adapter für meinen Sileno und einen Bodenfeuchtesensor. Vorweg, ich finde diesen Adapter super! Nun habe ich den Abfrageintervall von 600 s auf 60 Sekunden reduziert, da ich relativ online sehen wollte, was den mein Robby macht bzw. wenn die Sprinkler an sind der Robby brav nach Hause fährt.
Hierbei ist mir Aufgefallen, dass jedesmal wenn die Abfrage des Adapters starten keinerlei Skripte mehr funktionieren und mein javascript adapter abschmiert. d.h. es werden keine Skripte Ausgeführt.
Hab dann im TOP geschaut. Bei laufender Abfrage liegt die %CPU Auslastung zum teil bei >100%.
PID USER PR NI VIRT RES __ SHR S %CPU %MEM TIME+ COMMAND 6527 root 20 0 1270224 147076 21924 R 103,6 3,6 6:21.32 iobroker.js-con 7144 root 20 0 1138648 148164 21520 R 99,3 3,6 3:27.37 io.javascript.0 7395 root 20 0 1115376 56500 22012 S 75,5 1,4 0:06.63 io.gardena.0 6537 root 20 0 1242932 110648 21640 S 48,3 2,7 2:08.88 io.admin.0
Dauert dann ca. 30 Sekunden dann bekomme ich im LOG: javascript.0 2018-08-24 00:56:31.449 warn Reconnection to DB. Dannach gehen die Skripte wieder Liegt wahrscheinlich daran, dass der Adapter relativ lange benötigt um die Datenmenge zu verarbeiten.
Selbst wenn ich alle Skripte deaktiviere ist der Zustand laut TOP der selbe. Liegt es an den extrem vielen Datenpunkten die abgefragt werden bzw. kann jemand anders dieses Problem nachvollziehen? Habe jetzt erstmal den Abfrageintervall wieder auf 600s Sekunden gesetzt, damit das Problem minimiert ist.
Gruß Thomas