NEWS
Supportthread Resol-Adapter
-
Okay. So genau habe ich nicht mitgelesen. Für mich sah das so aus als würden sich die V1 mit der Adresse 32273 und die V2 mit der Adresse 32289 beim Adapter melden.
Aus dieser Info hätte man dann die passende deviceMajorVersion ableiten und im Code setzen können.
Gibt es vielleicht irgendeine andere Info, die man auf diese Weise ausbeuten könnte? Die DeviceID vielleicht (deviceId":"007E110010" bei V2), Anzahl irgendwelcher Sensoren, Vorhandensein/Abwesenheit eines Sensors, ...?
Keine Ahnung. Ich stocher nur im Nebel, weil ich solche Konfigeinstellungen nicht sonderlich mag, weil die supportanfällig sind. Wer achtet schon auf die Hardwarerevision von irgendetwas und ahnt das das einen Unterschied an irgendeiner Stelle machen könnte? Ich sicher nicht. wenn der selbe Name drauf steht, erwarte ich, das alle Versionen identisch funktionieren.Aber am Ende: Wenn es nichts gibt, gibt es nichts und dann muss es leider die Konfig retten.
-
@grizzelbee sagte in Supportthread Resol-Adapter:
Für mich sah das so aus als würden sich die V1 mit der Adresse 32273 und die V2 mit der Adresse 32289 beim Adapter melden
Das wäre ja auch zu einfach
Das habe ich jetzt gesehen auf Git vom Daniel:
Known issues
The ConfigurationOptimizers do not yet detect the firmware version running on the controller to be configured. That sometimes causes configuration loads and saves to fail because unknown values are read from or written to (e.g. using the "customizer" example on a DeltaSol MX with firmware version 1.11 or below).Short-term plans
Remove current ConfigurationOptimizer constructs in favor of RESOL's official support.Also wenn der sowieso weg fällt und es bis jetzt nur den User faz gibt, der den MX Controller nutzt, denke ich sollte wir warten bis Daniel den Short-term plans umgesetzt hat.
-
@grizzelbee sagte in Supportthread Resol-Adapter:
ber am Ende: Wenn es nichts gibt, gibt es nichts und dann muss es leider die Konfig retten.
Ich habe Antwort vom Daniel : Auslesen der Majorversion ist nicht möglich. Also bleibt nur die Auswahl durch den User.
Ich mach dann mal die Änderungen und schick Dir eine PR. Du müsstest dann die Auswahl einbauen.
Kannst ja schon mal schauen wie das geht und mir dann mitteilen, welche Infos in welchem Format Du brauchst. (Am Besten JSON ?)
Machen wir einen neuen Branch zum Testen ?Viele Grüße
Werner -
@gargano
Ich schlage vor, das ich zuerst die Konfig baue - dann kannst Du im Code darauf reagieren. Das dürfte am einfachsten sein. Das werde ich aber frühestens kommende Woche schaffen.Ich melde mich, wenn ich soweit bin und einen Branch dafür habe.
-
Hallo Werner,
ich finde gerade ein bisschen Zeit und Ruhe um mich um meine Projekte zu kümmern.
Bleibt es dabei, das wir das zusammen mit der Konfig-Option einbauen, oder warten wir auf das Update von Daniel (Was ziemlich lange dauern könnte, wenn ich mir seine Release-Zyklen so anschaue )? -
@grizzelbee
Daniel hat ja gesagt, daß Major Version auslesen auch in Zukunft nicht gehen wird.
Also machen wir das mit der User Auswahl.
Ich benötige dann eine Funktion, in der ich die Auswahl reinschreiben kann (Json) und eine Funktion, die getriggert wird, wenn der User ausgewählt hat mit Rückgabewert der Auswahl oder den Index.Viele Grüße
Werner -
Okay. Dann machen wir das so.
Die neue Konfig sähe dann so aus:
Auf die beiden neuen Werte kann dann über das normale Adapter-Konfig Objekt zugegriffen werden.
Passt das für dich?
-
@grizzelbee Schaut schon gut aus. Machst Du ein Branch ?
-
Schaut schon gut aus. Machst Du ein Branch ?
Das freut mich - und: Ja - ich mache da in Kürze einen Branch für. Bin (hoffentlich auch in Kürze soweit).
Habe da aber noch eine Frage: Kann ich in den Tooltipp der ControllerMajorVersion irgendwas hilfreiches reinschreiben wie man die ermittelt bzw. wo oder wie man die aus-/ablesen kann? -
@grizzelbee
In dem File Setup-Resol-Types.js stehen ja die Typen drin mit ID und dann zukünftig auch die Major Version.Z.B. für den MX :
{"id":32273,"setup":"deltasol-mx",majorVersion":1,"data":"resol-deltasol-mx-112-data"},
{"id":32273,"setup":"deltasol-mx2xx","majorVersion":2,"data":"resol-deltasol-mx-2xx-data"},Identifiziert wird es ja beim Start über die ID. In dem Falle 32273.
Kannst Du eine Identifizierungs - Button anlegen, womit der Controller automatisch gesucht und identifiziert wird ?
Der Rückgabe Wert muß dann die ID sein.Der Ablauf könnte dann so aussehen :
Controller identifizieren
Identifizierung über die ID ,
Wenn eine Major Version eingetragen ist, dann Auswahl der Version durch den User.
Der Controller Type würde automatisch dann richtig identifiziert.
In dem Falle brauchen wir die Auswahl MX/Other nicht.
Erst dann die Objekte anlegen , da die evtl. sonst falsch sind.oder
Auswahl vom Controller Type und Version beim Installieren durch den User.
(Ich glaube , das hast Du so vorgesehen, oder ?)Ich bin für die erste Variante, weil bei Erweiterungen der Controller Versionen nur das Setup Type File angepasst werden muss.
-
Auswahl vom Controller Type und Version beim Installieren durch den User.
(Ich glaube , das hast Du so vorgesehen, oder ?)Ja, das war meine erste Idee, weil mir nicht klar war, das man die Daten automatisch ermitteln kann.
Deine Lösung klingt besser.Kannst Du eine Identifizierungs - Button anlegen, womit der Controller automatisch gesucht und identifiziert wird ?
Ja - das müsste gehen. Gucke ich mir dann die Tage mal an.
-
So - was lange währt wird endlich was (ob auch gut, wir sich zeigen) .
Schau dir bitte mal im Repo den development Branch an. Da habe ich das mal vorbereitet - in der Hofgfnung das Du darauf aufsetzen kannst.viele Grüße
grizzelbee -
@grizzelbee
Kannst Du ein paar Zeilen zu den Änderungen sagen ?
Ich habe gesehen : Message Funktion ist hinzugekommen und ein 'getControllersForAdminSelect'.Viele Grüße
Werner -
Ähm, entschuldige bitte, ja - natürlich.
Also die Idee ist aktuell, das man im Admin auf Controller erkennen klickt.
Dann erkennt der Adapter den verbauten Controller.Über
adapter.config.controller
kannst Du dann die Werte hier abfragen und darauf reagieren:
Die Hauptversion kann dann über die Config eingestellt und über
adapter.config.controllerMajorVersion
abgefragt werden.Reicht Dir das?
-
@grizzelbee Ich habe mal Deine 1.4.0 gerade ausprobiert. Startet leider nicht und Objekte werden auch keine angelegt.
Kann es sein, daß noch etwas fehlt ? Die 1.3.0 geht.resol.0 2024-07-16 15:11:45.801 debug Plugin sentry Initialize Plugin (enabled=true) resol.0 2024-07-16 15:11:45.767 debug States connected to redis: 127.0.0.1:9000 resol.0 2024-07-16 15:11:45.705 debug States create User PubSub Client resol.0 2024-07-16 15:11:45.703 debug States create System PubSub Client resol.0 2024-07-16 15:11:45.690 debug Redis States: Use Redis connection: 127.0.0.1:9000 resol.0 2024-07-16 15:11:45.655 debug Objects connected to redis: 127.0.0.1:9001 resol.0 2024-07-16 15:11:45.646 debug Objects client initialize lua scripts resol.0 2024-07-16 15:11:45.598 debug Objects create User PubSub Client resol.0 2024-07-16 15:11:45.597 debug Objects create System PubSub Client resol.0 2024-07-16 15:11:45.594 debug Objects client ready ... initialize now resol.0 2024-07-16 15:11:45.539 debug Redis Objects: Use Redis connection: 127.0.0.1:9001
-
Hmm. Das Log sagt ja leider mal gar nichts aus. Und hochgeladen habe ich auch alles.
Wie hast Du die Version denn "installiert"?
Ich teste solche Versionen in der Regel so, dass ich das letzte npm Paket installiere, dann alle nötigen Dateien und Verzeichnisse aus der neuen Version/Branch drüber kopiere und dann noch einen Adapter Upload mache. Dann klappt das immer. -
@grizzelbee Ich habe mittels Admin vom Github installiert. Mit der 1.3.0 vom Master geht das. Vom development nicht.
-
@gargano
Ja - das geht aus irgendwelchen Gründen tatsächlich nicht.
Ich kann nur vorschlagen, das Du meinen Weg probierst. -
@grizzelbee Hab was rausgefunden :
wenn man in package.json den plugin-sentry auf den alten Wert setzt , startet auch der Adapter nach Installation vom Git.
"@iobroker/plugin-sentry": "^1.2.0",
-
Moin!
Ich bin noch recht neu und unerfahren, also "steinigt" mich nicht gleich
Ich hab den Adapter schon länger laufen, aber hauptsächlich zum Temperaturen loggen.
Ich hab den Cosmo Multi 2 Regler. Nun würd ich gern ein Relais des Reglers via iobroker schalten können...
Hab mich damit heute mal beschäftigt, bekomme es aber nicht richtig an's laufen.
Den Regler hab ich via Resol DL2 über Vbus im Netzwerk... installiert ist die Adapter V1.3.0in der Setup-Resol-Types.js hab ich nach meiner Regler ID gesucht:
[ {"id":4385,"setup":"deltasol-cs-2","data":"resol-deltasol-cs2-200-data"}, {"id":4386,"setup":"deltasol-cs-4","data":"resol-deltasol-cs4-200-data"}, {"id":8721,"setup":"deltasol-cs-plus","data":"resol-deltasol-cs-plus-110-data"}, {"id":32273,"setup":"deltasol-mx","data":"resol-deltasol-mx-112-data"}, {"id":4097,"setup":"deltasol-slt","data":"resol-deltasol-slt-102-data"}, {"id":21504,"setup":"deltatherm-hc","data":"resol-deltatherm-hc-xxx-data"}, {"id":16914,"setup":"deltasol-c","data":"resol-deltasol-c-104-data"}, {"id":29729,"setup":"deltasol-bx","data":"resol-deltasol-bx-plus-xxx-data"}, {"id":28946,"setup":"deltasol-bx-plus","data":"resol-deltasol-bx-plus-xxx-data"}, {"id":17019,"setup":"deltasol-bs4v2","data":"resol-deltasol-bs4v2-103-data"}, {"id":4176,"setup":"deltasol-e-v2","data":"resol-deltasol-e-v2-100-data"}, {"id":30753,"setup":"cosmo-multi-2","data":"resol-deltasol-e-v2-100-data"} ]
Dann hab ich in der resol-deltasol-e-v2-100-data.js geschaut und nach der Funktion gesucht:
{ "type": { "valueTexts": [ { "value": 0 }, { "value": 1 }, { "value": 2 } ], "rootTypeId": "Tristate_Relais", "defaults": "1" }, "valueTexts": [], "id": "Feger_Relaismodus3", "idHash": 1515392963, "index": 2243 },
Danach habe ich die cosmo-multi-2.js bearbeitet (so gut ich das verstanden hab, ich könnte mir Vorstellen das dort schon der Fehler zu suchen ist):
{"dp": [{"dpName":"Oelheizung_Status", "name":"Manual control for this relay.", "type":"number","min":0, "max":2, "states":{"0":"Off", "1":"Auto", "2":"On"}} ], "fct": [{"name":"Oelheizung_Status","cmd":"Feger_Relaismodus3","val":"val"} ]}
den Adapter hab ich neu gestartet und der Datenpunkt wurde erzeugt (siehe Screenshot oben) nur der Wert in den Objekten ist schon falsch...
Wenn ich nun den Wert des Objektes ändere bekomm ich folgende Log Einträge:2024-07-31 19:09:35.132 - debug: resol.0 (292082) Change on Object: "resol.0.0078210010.Actions.Oelheizung_Status" 2024-07-31 19:09:35.133 - debug: resol.0 (292082) State of Object: {"val":2,"ack":false,"ts":1722445775130,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1722445775130} 2024-07-31 19:09:35.133 - debug: resol.0 (292082) State :2 2024-07-31 19:09:35.134 - debug: resol.0 (292082) "getDpFunction jsoncontrollerSetupItems [object Object]" 2024-07-31 19:09:35.134 - debug: resol.0 (292082) getDpFunction jsoncontrollerSetupItems->item {"name":"Oelheizung_Status","cmd":"Feger_Relaismodus3","val":"val"} 2024-07-31 19:09:35.135 - debug: resol.0 (292082) [{"valueId":"Feger_Relaismodus3","value":2}] 2024-07-31 19:09:35.135 - debug: resol.0 (292082) Finishing Dpfunction... 2024-07-31 19:09:35.135 - debug: resol.0 (292082) myJSON: [{"valueId":"Feger_Relaismodus3","value":2}] 2024-07-31 19:09:35.135 - debug: resol.0 (292082) Waiting for free bus... 2024-07-31 19:09:36.450 - debug: resol.0 (292082) Found master with address 0x7821 2024-07-31 19:09:36.452 - error: resol.0 (292082) Unable to create optimizer for master with address 0x7821 2024-07-31 19:09:36.452 - debug: resol.0 (292082) Finishing runshot ... 2024-07-31 19:09:41.014 - debug: resol.0 (292082) loadedConfig [{"valueId":"Feger_Relaismodus3","valueIndex":2243,"priority":0,"valueTextById":{},"pending":false,"transceived":false}] 2024-07-31 19:09:41.014 - debug: resol.0 (292082) dp->item found{"name":"Oelheizung_Status","cmd":"Feger_Relaismodus3","val":"val"} 2024-07-31 19:09:41.015 - debug: resol.0 (292082) dp->Name found{"dpName":"Oelheizung_Status","name":"Manual control for this relay.","type":"number","min":0,"max":2,"states":{"0":"Off","1":"Auto","2":"On"}} 2024-07-31 19:09:41.015 - debug: resol.0 (292082) fct->item found{"name":"Oelheizung_Status","cmd":"Feger_Relaismodus3","val":"val"} 2024-07-31 19:09:41.015 - debug: resol.0 (292082) Finishing loadMyConfig...
er kann also irgendwie den optimizer nicht starten?
Ich hab mich in der cosmo-multi-2.js an der vorher dort schon stehenden "Pumpe1" orientiert, ich denke da hab ich evtl. schon den Bock geschossen?