NEWS
Fragen / Antworten rund um die neue Alias Funktion
-
Guten Abend,
beschäftige mich gerade mit dem Alias Manager. Hatte jetzt das Problem das bei mir der SourceAnalytix Adapter nicht richtig gezählt hat.
Habe in meiner Verteilung ein Smartmeter von Siemens verbaut der von jedem Stromkreis die Leistung messen und protokolieren (Wirkleistung, Wirkenergie) kann.
Jetzt zu dem vorhaben:
Ich möchte in dem Alias Manager direkt die Energiekosten berechnen. Die Formel die in dem Beispiel eingetragen ist, klappt auch. Was ich nun verbessern möchte ist, dass anstelle der 0,08€ ein Datenpunkt verknüpft ist. Damit ich nicht immer alle Alias Punkte ändern muss, wenn sich der Arbeitspreis ändert.

Ich danke schon mal im voraus.
-
Guten Abend,
beschäftige mich gerade mit dem Alias Manager. Hatte jetzt das Problem das bei mir der SourceAnalytix Adapter nicht richtig gezählt hat.
Habe in meiner Verteilung ein Smartmeter von Siemens verbaut der von jedem Stromkreis die Leistung messen und protokolieren (Wirkleistung, Wirkenergie) kann.
Jetzt zu dem vorhaben:
Ich möchte in dem Alias Manager direkt die Energiekosten berechnen. Die Formel die in dem Beispiel eingetragen ist, klappt auch. Was ich nun verbessern möchte ist, dass anstelle der 0,08€ ein Datenpunkt verknüpft ist. Damit ich nicht immer alle Alias Punkte ändern muss, wenn sich der Arbeitspreis ändert.

Ich danke schon mal im voraus.
@javamafia sagte: dass anstelle der 0,08€ ein Datenpunkt verknüpft ist.
Das leistet ein Alias nicht, denn er kann nur einen Original-DP lesend auswerten.
Für die Multiplikation von zwei DP-Werten benötigt man ein Skript. -
@javamafia sagte: dass anstelle der 0,08€ ein Datenpunkt verknüpft ist.
Das leistet ein Alias nicht, denn er kann nur einen Original-DP lesend auswerten.
Für die Multiplikation von zwei DP-Werten benötigt man ein Skript.Hallo,
steht gerade auf dem Schlauch, wollte für einen neuen Türkontakt ein Alias einricht, damit aus true/false ein Open/closed wird.Konvertierungsfunktion => beim schreiben hab ich dies eingetragen, aber es erscheint weiterhin true/false als Wert
JSON.parse(val) ? 'closed' : 'open'Die Objektdaten:
"common": { "alias": { "id": "zigbee2mqtt.0.0x00158d008b612d6f.contact", "write": "JSON.parse(val) ? 'closed' : 'open' " }, "name": "Saunafenster-Kontakt", "role": "state", "type": "boolean", "unit": "", "min": null, "max": null, "read": true, "write": false }, "native": {}, "type": "state", "_id": "alias.0.Aussen.Sauna.Saunafenster.contact", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1758705118215 }Wo liegt der Fehler, danke!
-
Hallo,
steht gerade auf dem Schlauch, wollte für einen neuen Türkontakt ein Alias einricht, damit aus true/false ein Open/closed wird.Konvertierungsfunktion => beim schreiben hab ich dies eingetragen, aber es erscheint weiterhin true/false als Wert
JSON.parse(val) ? 'closed' : 'open'Die Objektdaten:
"common": { "alias": { "id": "zigbee2mqtt.0.0x00158d008b612d6f.contact", "write": "JSON.parse(val) ? 'closed' : 'open' " }, "name": "Saunafenster-Kontakt", "role": "state", "type": "boolean", "unit": "", "min": null, "max": null, "read": true, "write": false }, "native": {}, "type": "state", "_id": "alias.0.Aussen.Sauna.Saunafenster.contact", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1758705118215 }Wo liegt der Fehler, danke!
@topsurfer sagte: aus true/false ein Open/closed wird.
Ändere die Objektdaten unter "common":
"common": { "alias": { "id": "zigbee2mqtt.0.0x00158d008b612d6f.contact", "read": "val ? 'closed' : 'open'" }, "name": "Saunafenster-Kontakt", "role": "state", "type": "string", "read": true, "write": false },Ist true "closed"?
-
@topsurfer sagte: aus true/false ein Open/closed wird.
Ändere die Objektdaten unter "common":
"common": { "alias": { "id": "zigbee2mqtt.0.0x00158d008b612d6f.contact", "read": "val ? 'closed' : 'open'" }, "name": "Saunafenster-Kontakt", "role": "state", "type": "string", "read": true, "write": false },Ist true "closed"?
@paul53 Danke dir,
Hauptfehler war wohl also, dass der Typ "boolean" war. Versuche ich mir zu merken ;-)
Bei Read hatte ich es auch probiert, dann bei Write etc. ...Ja, true ist closed, das "umdrehe" würde ich hinbekommen (val ? 'open' : 'closed': )
-
Hallo zusammen,
kann man mit der alias-Konvertierung null-werte überspringen bzw. ignorieren? oder komm ich da nur mit einem Skript weiter?
(Hintergrund: beim reboot meines esphome-Füllstandsmesser kommt immer zuerst ein leerer "Wert". Habs schon esp-seitig versucht das rauszufiltern, beiß mir da aber grad die Zähne aus)Dank schonmal und VG...
-
Hallo zusammen,
kann man mit der alias-Konvertierung null-werte überspringen bzw. ignorieren? oder komm ich da nur mit einem Skript weiter?
(Hintergrund: beim reboot meines esphome-Füllstandsmesser kommt immer zuerst ein leerer "Wert". Habs schon esp-seitig versucht das rauszufiltern, beiß mir da aber grad die Zähne aus)Dank schonmal und VG...
@ioT4db
Hm.. "überspringen" geht nicht so ohne weiteres. Was meinst du mit "leerer Wert"? Steht dann da 0 oder tatsächlichnull? An sich sollte in ioBroker alles mitnullals state Wert umgehen, der passt, wenn man den Wert nicht kennt. Das kann z.B.historyauch rausfiltern.
Das könntest du nutzen um0zu filtern, z.B. so:"read": "val !== 0 ? val : null"(also falls in val nicht0steht, nimm val, sonst setztenull-> 0 als Wert wird gefiltert).Falls du
0undnullda beides nicht drin stehen haben willst, brauchst du entweder einen anderen Wert, den du in der Formel oben stattnulleinsetzen kannst oder machst am besten ein kleines Skript. -
@ioT4db
Hm.. "überspringen" geht nicht so ohne weiteres. Was meinst du mit "leerer Wert"? Steht dann da 0 oder tatsächlichnull? An sich sollte in ioBroker alles mitnullals state Wert umgehen, der passt, wenn man den Wert nicht kennt. Das kann z.B.historyauch rausfiltern.
Das könntest du nutzen um0zu filtern, z.B. so:"read": "val !== 0 ? val : null"(also falls in val nicht0steht, nimm val, sonst setztenull-> 0 als Wert wird gefiltert).Falls du
0undnullda beides nicht drin stehen haben willst, brauchst du entweder einen anderen Wert, den du in der Formel oben stattnulleinsetzen kannst oder machst am besten ein kleines Skript. -
Ich möchte "false" und "true" in "0" und"1" konvertieren. Geht das so?
JSON.parse(val) ? 'false' : '0' 'true' : '1'
(scheinbar nicht)@Laser sagte in Fragen / Antworten rund um die neue Alias Funktion:
Geht das so?
was hast du dabei denn für Probleme?
-
Nur true oder false geht, aber Beides zusammen nicht.
(ich muß jetzt dringend für 1-2 h weg, falls ich mich nicht rühre!)@Laser wie sieht denn das JSON aus?
@Laser sagte in Fragen / Antworten rund um die neue Alias Funktion:
aber Beides zusammen nicht.
es kann auch nichts false UND true sein
-
Ich möchte "false" und "true" in "0" und"1" konvertieren. Geht das so?
JSON.parse(val) ? 'false' : '0' 'true' : '1'
(scheinbar nicht) -
Aus dem GPIO des Raspi kommt false und true (natürlich nicht gleichzeitig). Daraus soll 0 oder 1 werden. Für Grafana.
mit val ? 1 : 0 funktioniert das! Danke.@Laser sagte in Fragen / Antworten rund um die neue Alias Funktion:
mit val ? 1 : 0 funktioniert das!
Dann hast du gar kein JSON zum parsen?
Sondern nur einen Wert!Die Formel von @paul53 ist mal wieder hochoptimiert.

das ==true kann man hier ebenso weglassen, wie in Skripten.
(hab ich natürlich übersehen gehabt)
-
@Laser sagte in Fragen / Antworten rund um die neue Alias Funktion:
Das war etwas abgeschnitten kopiert.
was?
-
Die Formel habe ich abgeschnitten. Das "JSON.parse" habe ich im Beitrag 627 nicht dargestellt.
Unabhängig davon gehen die Probleme weiter. In der Objektdarstellung des Alias wird zwar eine 1 oder 0 dargestellt, aber in der influxDB, in welche gespeichert wird, läuft weiterhin true und false ein. Heute lege ich das erst mal in die Ecke. Morgen geht es noch mal dran.
 -
Die Formel habe ich abgeschnitten. Das "JSON.parse" habe ich im Beitrag 627 nicht dargestellt.
Unabhängig davon gehen die Probleme weiter. In der Objektdarstellung des Alias wird zwar eine 1 oder 0 dargestellt, aber in der influxDB, in welche gespeichert wird, läuft weiterhin true und false ein. Heute lege ich das erst mal in die Ecke. Morgen geht es noch mal dran.
@Laser sagte in Fragen / Antworten rund um die neue Alias Funktion:
Das "JSON.parse" habe ich im Beitrag 627 nicht dargestellt.
das brauchst du aber nicht, wenn im Original DP nur "true" oder "false" steht.
Leider hast du jns das weder gesagt, noch gezeigt.
oder steht da tatsächlich ein JSON drin?
-
Ja, leider weiß ich nicht, wie ich mir das JSON ansehen kann. Wo dieses zu finden ist.Wenn mir das Alles klar wäre, müßte ich ja hier nicht so doofe Fragen stellen.
....JSON in ioBroker: Ein Objekt (z.B. aus einer API-Abfrage) wird oft als Zeichenkette in einem Datenpunkt gespeichert. Aber wo?
Die Umwandlung von true/false in 1 und 0 geht mit und ohne das JSON in der Konvertierungsfunktion. Verstehe ich absolut nicht.