NEWS
MieleCloudService Adapter
-
@michael-1975 sagte in MieleCloudService Adapter:
was ist ReWrite-Branch
Generell gesprochen: Branches sind Entwicklungszweige einer Software. In diesem Fall des MieleCloudService Adapters. In diesen Branches kann der Code geändert oder erweitert werden ohne das das aktuelle Release etwas davon mitbekommt oder in Mitleidenschaft gezogen wird. Erst wenn der Entwickler der Meinung ist, das die Änderungen okay sind bringt er die einzelnen Entwicklungszweige wieder zusammen. Das nennt man dann mergen (engl. to merge - verschmelzen).
Der ReWrite-Branch ist also der Entwicklungszweig, den ich für das komplette Neuschreiben des Adapters genutzt habe. Diesen Branch werde ich in absehbarer Zeit auch mit dem Hauptzweig mergen. Sobald ich das tue wird die neue Version für alle im latest-Repo zur Verfügung stehen.
Ich habe hier eigentlich nur die Anfrage von @oxident genutzt um ihn um einen Alpha-Test zu bitten, bevor ich das der Allgemeinheit zur Verfügung stelle. Da er danach gefragt hat, scheint er zu wissen wie man den installiert. Ich wollte halt vermeiden das die 6.0 mit zu dicken Bugs ins Repo geht - auch wenn es ja das definierte Test-Repo ist.
@michael-1975 sagte in MieleCloudService Adapter:
gibt es dann irgentwo Infos was geändert wurde für die Scripte oder Vis.
Ich schaue mal, das ich das noch genauer ins Readme schreibe. Im Augenblick habe ich präsent, das:
- TargetTemp und temperature die ID verändert haben
- TargetTemp mit unsinnigen Werten (-32768, null, ...) werden nicht mehr angelegt
- startTime ist in den Actions-Zweig gewandert und sollte funktionieren
- Die ACTIONS.*_Button_Active Datenpunkte habe ich entfernt
- Die switches in den Actions haben keine States (on/off/...) mehr sondern sind true/false switches
-
@grizzelbee said in MieleCloudService Adapter:
@oxident sagte in MieleCloudService Adapter:
@Grizzelbee Kann man eigentlich den Rewrite-Branch schon testen oder wäre das Quatsch?
Ich habe noch einmal etwas Zeit investiert und Arbeit reingesteckt. Der ReWrite-Branch sollte jetzt schon fast release tauglich sein.
Wow, danke! Mein erster Versuch scheiterte jedoch kläglich. iobroker war der Meinung, meine NPM-Version wäre nicht passend, scheiterte dann auch schlussendlich an einer fehlenden .js-Datei.
Hatte leider keine Zeit, die Sache näher zu dokumentieren oder zu untersuchen und bin daher zügig zum letzten Stable zurück.
Gebe Rückmeldung, wenn ich es nochmal probieren kann!
-
Bisher noch kein Erfolg mit dem rewrite-Branch. Der Adapter scheint die mieleTools.js zu benötigen, die ist aber in diesem Branch nicht mehr vorhanden:
host.iobroker 2022-04-22 19:45:10.963 error instance system.adapter.mielecloudservice.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker 2022-04-22 19:45:10.963 error Caught by controller[0]: requireStack: [ '/opt/iobroker/node_modules/iobroker.mielecloudservice/main.js' ] host.iobroker 2022-04-22 19:45:10.963 error Caught by controller[0]: code: 'MODULE_NOT_FOUND', host.iobroker 2022-04-22 19:45:10.963 error Caught by controller[0]: } host.iobroker 2022-04-22 19:45:10.963 error Caught by controller[0]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12) { host.iobroker 2022-04-22 19:45:10.962 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:790:12) host.iobroker 2022-04-22 19:45:10.960 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:950:32) host.iobroker 2022-04-22 19:45:10.959 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1085:14) host.iobroker 2022-04-22 19:45:10.959 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:101:18) host.iobroker 2022-04-22 19:45:10.959 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:746:27) host.iobroker 2022-04-22 19:45:10.959 error Caught by controller[0]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15) host.iobroker 2022-04-22 19:45:10.958 error Caught by controller[0]: Require stack: host.iobroker 2022-04-22 19:45:10.958 error Caught by controller[0]: ^ host.iobroker 2022-04-22 19:45:10.959 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:974:19) host.iobroker 2022-04-22 19:45:10.959 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.mielecloudservice/main.js:11:20) host.iobroker 2022-04-22 19:45:10.959 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) host.iobroker 2022-04-22 19:45:10.958 error Caught by controller[0]: throw err; host.iobroker 2022-04-22 19:45:10.958 error Caught by controller[0]: Error: Cannot find module './source/mieleTools.js' host.iobroker 2022-04-22 19:45:10.958 error Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.mielecloudservice/main.js
UPDATE: Habe den Ordner "source" manuell heruntergeladen und jetzt scheint's zu klappen.
@Grizzelbee Müsste vielleicht noch im package.json hinterlegt werden -
@oxident sagte in MieleCloudService Adapter:
Müsste vielleicht noch im package.json hinterlegt werden
Stimmt! Habe ich übersehen. Danke für den Hinweis. Habe ich soeben gefixed.
-
Hallo,
Version 6.1.0.
Bei meiner Dunstabzugshaube ist beim Licht der Status "false" wenn es AN ist, und "true", wenn es aus ist.
mielecloudservice.0.mac-000000SERIAL.ACTIONS.Light
Beim "alles Aus" Button (jetzt auch true/false) muss jetzt einmal auf false und dann true geschaltet werden, damit der Lüfter und das Licht gemeinsam ausgehen.
mielecloudservice.0.mac-000000SERIAL.ACTIONS.Stop
Gruß Mark
-
@marka sagte in MieleCloudService Adapter:
Bei meiner Dunstabzugshaube ist beim Licht der Status "false" wenn es AN ist, und "true", wenn es aus ist.
Hmm.. Komisch. Bei meiner Kaffeemaschine passt das. Gucke ich mir aber noch einmal genauer an.
Schreibst und schickst Du mir dafür bitte ein Debug-Log? Dann wird das etwas greifbarer - genau wie die zweite Sache. Hat eigentlich beides vorher funktioniert (also mit der 5er Version)? -
@marka said in MieleCloudService Adapter:
Hallo,
Version 6.1.0.
Bei meiner Dunstabzugshaube ist beim Licht der Status "false" wenn es AN ist, und "true", wenn es aus ist.
mielecloudservice.0.mac-000000SERIAL.ACTIONS.Light
Ist bei meiner Kaffeemaschine (CVA7845) auch so. Hab dafür ein Issue geöffnet.
Bei der 5er Version lief das korrekt.Ansonsten klappt alles prima. Danke für Deinen Einsatz @Grizzelbee !
-
@oxident sagte in MieleCloudService Adapter:
Ist bei meiner Kaffeemaschine (CVA7845) auch so. Hab dafür ein Issue geöffnet.
https://github.com/Grizzelbee/ioBroker.mielecloudservice/issues/228
Das Problem mit dem Lichtschalter kann ich nun doch bestätigen - habe ich für V6.1.2 auch schon gefixed. Das war nur eine Kleinigkeit.
@marka sagte in MieleCloudService Adapter:
Beim "alles Aus" Button (jetzt auch true/false) muss jetzt einmal auf false und dann true geschaltet werden, damit der Lüfter und das Licht gemeinsam ausgehen.
mielecloudservice.0.mac-000000SERIAL.ACTIONS.StopDas hier kann ich aber noch nicht nachvollziehen. ACTIONS.Stop ist kein true/false Schalter, sondern ein Button. Die werden grundsätzlich nur im Admin geklickt bzw. in Scripten, etc mit
true
beschrieben. Klingt als müssten wir da noch ein bisschen forschen. Also ob da etwas defekt ist und wenn ja was. -
-
Okay. Das Ausschlaggebende hier ist die Rolle also "Button". Wenn du den Expertenmodus verlässt siehst du das aus dem
true
so ein rotes Hütchen wird. Das soll (glaube ich) einen Taster darstellen - jedenfalls funktioniert es genau wie ein Taster. Im Gegensatz dazu der Power-Switch direkt darüber. Der wird tatsächlich zwischentrue
undfalse
hin- und hergeschaltet. -
@Grizzelbee
Bin jetzt auch auf der 6.1.5. Die Datenpunkte zur Wärmeschublade werden befüllt, vielen Dank für die prompte Umsetzung!Eine Warnung gibt es diesbezüglich jedoch:
2022-05-10 19:29:38.124 - warn: mielecloudservice.0 (3324) Object XXXXXXXXXXXX.ACTIONS.programId is invalid: obj.common.type has an invalid value (integer) but has to be one of number, string, boolean, array, object, mixed, file, json 2022-05-10 19:29:38.125 - warn: mielecloudservice.0 (3324) This object will not be created in future versions. Please report this to the developer. 2022-05-10 19:29:38.735 - info: mielecloudservice.0 (3324) State value to set for "mielecloudservice. XXXXXXXXXXXX.ACTIONS.programId" has to be type "integer" but received type "number"
Anfangs kamen diese Meldungen nur beim Neustart des Adapters, dann allerdings öfters und momentan sekündlich.
Dazu kommen des Öfteren Reconnect-Versuche:
2022-05-10 00:34:54.349 - info: mielecloudservice.0 (889) Watchdog detected ping failure. Last ping occurred over a minute ago. Trying to reconnect. 2022-05-10 00:39:54.350 - info: mielecloudservice.0 (889) Watchdog detected ping failure. Last ping occurred over a minute ago. Trying to reconnect. 2022-05-10 00:44:54.350 - info: mielecloudservice.0 (889) Watchdog detected ping failure. Last ping occurred over a minute ago. Trying to reconnect. 2022-05-10 00:49:54.350 - info: mielecloudservice.0 (889) Watchdog detected ping failure. Last ping occurred over a minute ago. Trying to reconnect. 2022-05-10 00:54:54.351 - info: mielecloudservice.0 (889) Watchdog detected ping failure. Last ping occurred over a minute ago. Trying to reconnect. 2022-05-10 00:59:54.351 - info: mielecloudservice.0 (889) Watchdog detected ping failure. Last ping occurred over a minute ago. Trying to reconnect.
Als mir zufällig die fehlende Aktualisierung der Datenpunkte auffiel, zeigte das Log aktuelle „Trying to reconnect“ Meldungen, jedoch hat in diesem Fall nur ein manueller Neustart der Instanz geholfen.
-
@rekorboi und alle:
Bezüglich der Crashes und reconnect Versuche: Das Thema ist vertrackt. Der Code der 6.1.5 ist noch nicht perfekt - da arbeite ich gerade dran. Das Hauptproblem ist aber, dass die API (also die Miele-Server) nach vollkommen willkürlichen Zeiträumen Fehler melden und der Adapter sich dann nicht einfach so automatisch reconnecten lässt.
Aus diesem Grunde werde ich mich mal an Miele wenden und baue gerade als Backup das Polling wieder ein.@rekorboi Bezüglich der Wärmeschublade:
Lass bitte mal ein Debug-Log schreiben; vom Start des Adapters, das Gerät einmal ein- und wieder ausschalten und den Adapter wieder stoppen. Dann schickst Du mir das. Das Problem ist, das manche Geräte aufwändigere Programminfos haben und die kann der Adapter noch nicht. Das muss ich nach und nach implementieren. -
@grizzelbee Habe jetzt auch diese Fehlermeldung mit Einfrieren des Adapters
Version 6.1.52022-05-13 12:22:18.517 - warn: mielecloudservice.0 (1854860) Received error message by SSE: {"type":"error"} 2022-05-13 12:22:38.457 - warn: mielecloudservice.0 (1854860) Received error message by SSE: {"type":"error","message":"socket hang up"} 2022-05-13 12:23:18.520 - warn: mielecloudservice.0 (1854860) Received error message by SSE: {"type":"error"} 2022-05-13 12:23:38.412 - warn: mielecloudservice.0 (1854860) Received error message by SSE: {"type":"error"} 2022-05-13 12:25:38.535 - warn: mielecloudservice.0 (1854860) Received error message by SSE: {"type":"error"} 2022-05-13 12:26:09.437 - warn: mielecloudservice.0 (1854860) Received error message by SSE: {"type":"error"} 2022-05-13 12:29:38.546 - warn: mielecloudservice.0 (1854860) Received error message by SSE: {"type":"error"}
-
@gargano Ja - ich weiß.
Ich habe die gleichen Probleme. Sehr unerfreulich das alles.
Ich habe aber die V6.2.0 seit gestern bei mir im Langzeittest und hoffe die in Kürze veröffentlichen zu können. Da habe ich primär versucht die SSEs stabiler zu bekommen, aber auch das Data-Polling als Notlösung wieder eingebaut. Bisher sieht es aber ganz gut aus. Ich habe zwar nach wie vor Fehler bezüglich der Connection im Log, aber die haben sich alle selbst geheilt. Ich scheine eine Art Gleichgewicht gefunden zu haben.
Mal weiter abwarten wie es sich entwickelt... -
Hallo,
auch wenn ich mit meinem Deckenlüfter nerve, leider ein Problem mit dem DP der Lüfterstufe:
State value to set for "mielecloudservice.0.mac-SERIALNUMBER.ACTIONS.VentilationStep" has to be type "boolean" but received type "number"
Gruß Mark
-
Hallo Mark,
schreib doch bitte mal ein Debug-Log des Adapters und schicke es mir (entweder per mail oder hier als zip anhängen müsste auch klappen - ansonsten Issue auf github öffnen und dort als zip anhängen).
-
-
V6.2.1 (2022-05-16) (Black Wings)
- (grizzelbee) Fix: 242 VentilationStep needs to be type number but was boolean
- (grizzelbee) Fix: ACTIONS.programId is invalid: obj.common.type has an invalid value (integer) ...
https://github.com/Grizzelbee/ioBroker.mielecloudservice/issues/242
-
@Grizzelbee
Danke für den Fix, die Warnung „ACTIONS.programId is invalid: obj.common.type has an invalid value (integer)...” ist verschwunden.Bin jetzt auf der 6.3.1, hinsichtlich des zeitbasierten Pollings sind mir zwei Punkte aufgefallen:
- Die Abfrageintervalleinheit-Dropdown-Liste bietet nicht die Optionen Sekunden/Minuten sondern Sekunden/Protokoll.
- Das zeitbasierte Polling füllt das Info-Log mit Unmengen an Einträgen. Bei jeder einzelnen Abfrage kommen hier 5 Einträge (5 Geräte):
2022-05-26 14:26:26.748 - info: mielecloudservice.0 (5119) Actions: {"XXXXXXXXXXX2":{"processAction":[],"light":[],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}} 2022-05-26 14:26:26.882 - info: mielecloudservice.0 (5119) Actions: {"XXXXXXXXXXX3":{"processAction":[],"light":[],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}} 2022-05-26 14:26:27.020 - info: mielecloudservice.0 (5119) Actions: {"XXXXXXXXXXX4":{"processAction":[],"light":[],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[1,2,3,4],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}} 2022-05-26 14:26:27.239 - info: mielecloudservice.0 (5119) Actions: {"XXXXXXXXXXX1":{"processAction":[2,3],"light":[1],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[],"deviceName":true,"powerOn":false,"powerOff":true,"colors":[],"modes":[]}} 2022-05-26 14:26:27.411 - info: mielecloudservice.0 (5119) Actions: {"XXXXXXXXXXX5":{"processAction":[],"light":[1],"ambientLight":[],"startTime":[],"ventilationStep":[],"programId":[],"targetTemperature":[],"deviceName":false,"powerOn":true,"powerOff":false,"colors":[],"modes":[]}}
Auf das zeitbasierte Polling war ich gewechselt, da die SSE-Variante auf einmal sehr ressourcenhungrig erschien und den Pi in der bestehenden Konfiguration deutlich ausbremste. Momentan fehlt mir allerdings die Zeit für eine detailliertere Analyse, daher zunächst das definierte Abfrageintervall. Alle genannten Punkte sind mir mit Version 6.2.1 aufgefallen, 6.3.1 brachte anscheinend keine diesbezügliche Änderung.
-
@rekorboi
Viele Dank für die Infos! Da ich selbst das polling nicht einsetze, ist mir nicht allers davon bewusst.- Die Abfrageintervalleinheit-Dropdown-Liste bietet nicht die Optionen Sekunden/Minuten sondern Sekunden/Protokoll.
Jaaaa - das ist ein Problem von Google translate - und ich bin es leid immer und immer wieder dagegen anzukämpfen. Zumal ich es nur im Deutschen beurteilen und fixen könnte. Die anderen Sprachen blieben im Zweifel falsch übersetzt. Das zugrunde liegende Problem ist das "Minutes" im englischen sowohl "Minuten" als auch "Protokoll/Mitschrift" bedeutet (wer auch immer sich DAS ausgedacht haben mag ...). Ich weiß das das Kacke ist, aber ich werde es so lassen. Zumindest bis mich jemand eines besseren belehrt oder für alle Sprachen einen Fix einreicht - jedes mal auf Neue, wenn das wieder kaputt gegangen ist.
Das zeitbasierte Polling füllt das Info-Log mit Unmengen an Einträgen. Bei jeder einzelnen Abfrage kommen hier 5 Einträge (5 Geräte):
Da habe ich wohl noch einen als debug-log gemeintein Eintrag fälschlicherweise auf info stehen. Das fixe ich gerne in der nächsten Version - bringe dafür aber keine eigene Version raus.
Auf das zeitbasierte Polling war ich gewechselt, da die SSE-Variante auf einmal sehr ressourcenhungrig erschien und den Pi in der bestehenden Konfiguration deutlich ausbremste
Das kann ich mir ehrlich gesagt nicht vorstellen. Es ist zwar so, dass bei SSE tatsächlich alle 5 Sekunden eine PING Nachricht vom Server reinkommt, die aktualisiert aber nur eine timestamp Variable im Adapter und fertig. Mehr macht die nicht. Und alle 5 Minuten prüft der Watchdog ob dieser Timestamp aktuell ist. Die komplette Anforderung und Verarbeitung der Gerätedaten (Status und verfügbare Aktionen) beim Polling verbraucht (je nach Intervall) sicherlich mehr Resourcen.
Alle genannten Punkte sind mir mit Version 6.2.1 aufgefallen, 6.3.1 brachte anscheinend keine diesbezügliche Änderung.
Das kann gut sein. Das Polling ist ganz klar eine Notlösung und ein Stiefkind. Mein Fokus liegt klar auf SSE - weil es die bessere Techniologie ist. Nichts desto Trotz vielen Dank für dein Feedback.