NEWS
(Gelöst)Aus einer Liste "Name" und Wert
-
Hallo zusammen,
ich habe 5 Batteriepacks (PV-Speicher) mit jeweils 16 Zellen, nun möchte ich die Minimalspannung und die Maximalspannung der einzelnen Batteriepacks jeweils in einen Datenpunkt schreiben mit der Info (Name der Zelle) welche Zelle den jeweiligen Wert hatte. Den Wert alleine bekomme ich hin, aber nicht
„Namen“ und Wert.
Hat jemand von Euch eine Lösung für das Problem?
Vielen Dank!
Harald@harald07
Da Du ja lediglich die Werte der DP in die Liste geschrieben hast, verlierst Du so den Bezug zum Objekt.
Ich würde die DP komplett in die Liste schreiben(oder über Enum und Selektor)und mit einer Schleife durcheiern.
Jeden Wert und den zugehörigen Namen in 4 Variablen wegschreiben, wenn der Wert niederiger bzw. höher ist als der jeweils zuletzt gemerkte.
Am Ende hat man dann in den 4 Variablen den Min- und Maxwert und den zugehörigen Namen.
Oder man nimmt nur 2 Variablen und schreibt dort das komplette Objekt weg. -
@harald07
Da Du ja lediglich die Werte der DP in die Liste geschrieben hast, verlierst Du so den Bezug zum Objekt.
Ich würde die DP komplett in die Liste schreiben(oder über Enum und Selektor)und mit einer Schleife durcheiern.
Jeden Wert und den zugehörigen Namen in 4 Variablen wegschreiben, wenn der Wert niederiger bzw. höher ist als der jeweils zuletzt gemerkte.
Am Ende hat man dann in den 4 Variablen den Min- und Maxwert und den zugehörigen Namen.
Oder man nimmt nur 2 Variablen und schreibt dort das komplette Objekt weg.Im Prizip so - geht aber vermutlich noch deutlich eleganter:

EDIT: Korrigiert - s.u.
-
@Codierknecht Vielen Dank für deinen Vorschlag. Werde ich sofort mal probieren.
-
Im Prizip so - geht aber vermutlich noch deutlich eleganter:

EDIT: Korrigiert - s.u.
@codierknecht sagte: Im Prizip so
So kann man den Namen nicht ermitteln. Das funktioniert nur mittels JS-Funktion mit Ergebnis.
Die ID-Liste sollte außerhalb des Triggers erstellt werden, wozu sich sicherlich auch der Selektor eignet.
-
@codierknecht sagte: Im Prizip so
So kann man den Namen nicht ermitteln. Das funktioniert nur mittels JS-Funktion mit Ergebnis.
Die ID-Liste sollte außerhalb des Triggers erstellt werden, wozu sich sicherlich auch der Selektor eignet.
@paul53 sagte in Aus einer Liste "Name" und Wert:
So kann man den Namen nicht ermitteln. Das funktioniert nur mittels JS-Funktion mit Ergebnis.
Du hast natürlich Recht - stolpere ich jedes Mal drüber.
Hab's oben mal korrigiert. -
@paul53 sagte in Aus einer Liste "Name" und Wert:
So kann man den Namen nicht ermitteln. Das funktioniert nur mittels JS-Funktion mit Ergebnis.
Du hast natürlich Recht - stolpere ich jedes Mal drüber.
Hab's oben mal korrigiert.Da mich das immer wieder ärgert, habe ich mal ein Issue aufgemacht. Votes welcome ;-)
https://github.com/ioBroker/ioBroker.javascript/issues/1249 -
Da mich das immer wieder ärgert, habe ich mal ein Issue aufgemacht. Votes welcome ;-)
https://github.com/ioBroker/ioBroker.javascript/issues/1249@codierknecht sagte: Issue aufgemacht.
Es bräuchte ein zusätzliches Blockly-Element für getObject(id). Das gezeigte getState(id) hat nicht mehr Attribute (außer "Kommentar").
-
@codierknecht sagte: Issue aufgemacht.
Es bräuchte ein zusätzliches Blockly-Element für getObject(id). Das gezeigte getState(id) hat nicht mehr Attribute (außer "Kommentar").
@paul53
Das wird @apollon77 mir sicher in das Issue schreiben :grin:
So ein Block-Element "getObject()" wäre natürlich noch cooler. Damit könnte man dann auch noch "unit", "read", "write" usw. ermitteln - ohne JS. -
@paul53
Das wird @apollon77 mir sicher in das Issue schreiben :grin:
So ein Block-Element "getObject()" wäre natürlich noch cooler. Damit könnte man dann auch noch "unit", "read", "write" usw. ermitteln - ohne JS.@codierknecht sagte: Block-Element "getObject()" wäre natürlich noch cooler.
In Blockly sollte man sich vielleicht auf getObject(id).common beschränken.
-
Erst einmal allen vielen Dank!
Leider bekomme ich es nicht hin. Da ich zu keinem Ergebnis gekommen bin habe ich habe es erst einmal auf den Minimalwert mit Hilfe des Selectors reduziert. Aber leider gab dies sochon kein Ergebnis.

Ohne den Selektor und ohne die Schleife bekomme ich den Minimalwert und Maximalwert, aber nicht die jeweiligen Zellen.

Kann ich den Selektor in irgendeiner Weise prüfen?
-
Erst einmal allen vielen Dank!
Leider bekomme ich es nicht hin. Da ich zu keinem Ergebnis gekommen bin habe ich habe es erst einmal auf den Minimalwert mit Hilfe des Selectors reduziert. Aber leider gab dies sochon kein Ergebnis.

Ohne den Selektor und ohne die Schleife bekomme ich den Minimalwert und Maximalwert, aber nicht die jeweiligen Zellen.

Kann ich den Selektor in irgendeiner Weise prüfen?
@harald07 sagte: Kann ich den Selektor in irgendeiner Weise prüfen?
Ja, einfach den Selektor per Debug-Block ausgeben. Prinzip:

@harald07 sagte in Aus einer Liste "Name" und Wert:
Aber leider gab dies sochon kein Ergebnis.
Zeige bitte mal die ID-Struktur der Datenpunkte.
-
Erst einmal allen vielen Dank!
Leider bekomme ich es nicht hin. Da ich zu keinem Ergebnis gekommen bin habe ich habe es erst einmal auf den Minimalwert mit Hilfe des Selectors reduziert. Aber leider gab dies sochon kein Ergebnis.

Ohne den Selektor und ohne die Schleife bekomme ich den Minimalwert und Maximalwert, aber nicht die jeweiligen Zellen.

Kann ich den Selektor in irgendeiner Weise prüfen?
@harald07 sagte in Aus einer Liste "Name" und Wert:
Ohne den Selektor und ohne die Schleife bekomme ich den Minimalwert und Maximalwert, aber nicht die jeweiligen Zellen.
Dann probier doch mal mit Schleife ;-)
Die brauchst Du ja auch mit funktionierendem Selektor. -
@paul53 gerne.!

P3_Z01 - P3_Z16 sind die Zellen. Alle Zellen des Packs haben die Funktion "Zellen_Alle" & "Zellen_P3".
-
Für jedes Pack und nochmal alle zusammen.

Hier fehlt noch Minimal und Maximal mit der Info welche Zelle es ist. -
Für jedes Pack und nochmal alle zusammen.

Hier fehlt noch Minimal und Maximal mit der Info welche Zelle es ist. -
@paul53 Es tut sich was.
2023-02-13 18:08:21.581 - info: javascript.0 (5714) script.js.PV.Zellen_Paul53: ['0_userdata.0.PV.Pack_3.P3_Z01','0_userdata.0.PV.Pack_3.P3_Z02','0_userdata.0.PV.Pack_3.P3_Z03','0_userdata.0.PV.Pack_3.P3_Z04','0_userdata.0.PV.Pack_3.P3_Z05','0_userdata.0.PV.Pack_3.P3_Z06','0_userdata.0.PV.Pack_3.P3_Z07','0_userdata.0.PV.Pack_3.P3_Z08','0_userdata.0.PV.Pack_3.P3_Z09','0_userdata.0.PV.Pack_3.P3_Z10','0_userdata.0.PV.Pack_3.P3_Z11','0_userdata.0.PV.Pack_3.P3_Z12','0_userdata.0.PV.Pack_3.P3_Z13','0_userdata.0.PV.Pack_3.P3_Z14','0_userdata.0.PV.Pack_3.P3_Z15','0_userdata.0.PV.Pack_3.P3_Z16'] 2023-02-13 18:08:21.582 - info: javascript.0 (5714) script.js.PV.Zellen_Paul53: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2023-02-13 18:08:32.111 - info: admin.0 (5672) <== Disconnect system.user.admin from ::ffff:192.168.20.20 javascriptMOD-EDIT: Code in code-tags gesetzt!
-
@paul53 Es tut sich was.
2023-02-13 18:08:21.581 - info: javascript.0 (5714) script.js.PV.Zellen_Paul53: ['0_userdata.0.PV.Pack_3.P3_Z01','0_userdata.0.PV.Pack_3.P3_Z02','0_userdata.0.PV.Pack_3.P3_Z03','0_userdata.0.PV.Pack_3.P3_Z04','0_userdata.0.PV.Pack_3.P3_Z05','0_userdata.0.PV.Pack_3.P3_Z06','0_userdata.0.PV.Pack_3.P3_Z07','0_userdata.0.PV.Pack_3.P3_Z08','0_userdata.0.PV.Pack_3.P3_Z09','0_userdata.0.PV.Pack_3.P3_Z10','0_userdata.0.PV.Pack_3.P3_Z11','0_userdata.0.PV.Pack_3.P3_Z12','0_userdata.0.PV.Pack_3.P3_Z13','0_userdata.0.PV.Pack_3.P3_Z14','0_userdata.0.PV.Pack_3.P3_Z15','0_userdata.0.PV.Pack_3.P3_Z16'] 2023-02-13 18:08:21.582 - info: javascript.0 (5714) script.js.PV.Zellen_Paul53: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2023-02-13 18:08:32.111 - info: admin.0 (5672) <== Disconnect system.user.admin from ::ffff:192.168.20.20 javascriptMOD-EDIT: Code in code-tags gesetzt!

