FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Ralph am 07 Dezember 2020, 13:15:48

Titel: Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: Ralph am 07 Dezember 2020, 13:15:48
Sorry,
ich glaube, ich sehe den Wald vor lauter Bäumen nicht und suche mir einen Wolf.

Ich möchte mehrere Werte (zusammen 7) aus verschiedenen ReadingsVal in einem Userreading in einer einzigen Zeile verketten, sprich die Werte aneinanderhängen, getrennt mit Kommas und Tabs als TXT oder LOG.

Der einzelne Wert ist kein Problem, nur die aufeinanderfolgende Verkettung schaffe ich nicht.

Habt ihr bitte einen strukturellen Tip für mich ?
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: rabehd am 07 Dezember 2020, 13:23:48
Zeichenketten lassen sich mit Hilfe des Operators "." verbinden.
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: Otto123 am 07 Dezember 2020, 13:25:22
Hallo Ralph,

praktisches Beispiel von gestern :) mit Komma
location:lat.* {ReadingsNum($name,'latitude',0).','.ReadingsNum($name,'longitude',0)},

Sieht dann so aus
Zitatlatitude 50.1234567
location 50.1234567,10.2429005
longitude 10.2429005

Gruß Otto
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: stefan.apetz am 25 November 2022, 10:11:10
Moin,

vielleicht sehe ich den Wald vor lauter Bäumen auch nicht: ich habe das Komma separiert, möchte das aber in dem Eingabefeld auf mehrere Zeilen verteilt haben.

Also so:


1 energyTotal:energy.* monotonic {sprintf("%.3d", ReadingsVal($name,"energy",0)/1000) }, ;;
2 energyTotalNum:energy.* monotonic {ReadingsNum($name,"energy",0,3)/1000 }, ;;
3 energyTotalNumFloat:energy.* {sprintf ("%.3d", monotonic {ReadingsNum($name,"energy",0,3)/1000 })


Die 1 / 2 / 3 kommen dabei aus dem Editorfenster vom Bearbeitungsdialog von fhem. Schreibe ich alles in eine Zeile hintereinander weg mit Komma getrennt, dann geht das. Über mehrere Zeilen hinweg trotz doppeltem ;; aber nicht.

Dass ich das hier quasi 3 Mal definiere liegt daran, dass mir trotz Sprint (teilweise) immer ganz viele Nachkommestallen angezeigt werden. Daher sollten diese 3 Readings ein Test für das Formatieren der Zahl sein.

Wo ist der Fehler :-(
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: rabehd am 25 November 2022, 10:32:48
Was willst Du überhaupt erreichen?
Wo soll der Code hin?
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: stefan.apetz am 25 November 2022, 10:50:42
Ganz normales UserReadings in den Attributen bei einem device. Siehe Bild.
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: Otto123 am 25 November 2022, 10:55:06
das ;; ist Humbug. userReadings werden Komma separiert! Nicht Komma und halbe Punkte separiert. ;)
Du kannst im DEF Editor Fenster einfach Zeilenumbrüche machen. In der Raw Def erscheint dann dort ein  \

das sprintf kannst Du an der Stelle knicken, das montonic Ergebnis kann trotzdem wieder mehrstellig sein. sprintf um Stellen zu formatieren macht man nur gaaanz am Ende, bei der Darstellung.
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: stefan.apetz am 25 November 2022, 10:59:54
Das hatte ich probiert. Das griff nicht, nur wenn alles in einer Zeile steht.

Von daher nahm ich an, dass das (wie im Wiki zu lesen) per Semikolon getrennt sein müsste:

https://wiki.fhem.de/wiki/UserReadings#Syntax

Dort heisst es:

Bei Eingabe im Editor-Feld müssen mehrere Befehle mit einem ";" getrennt werden, bei Änderung in der Eingabezeile sind zwei ";" notwendig.

Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: Otto123 am 25 November 2022, 11:01:55
innerhalb vom Perl Code ist das richtig, als Trennung zwischen den einzelnen userReadings nicht.
Das Zeilenumbrüche im Attribute Feld nicht gehen sollen glaube ich nicht. Bzw klingt es nicht nach DEF Editor sondern nach Hand anlegen in der fhem.cfg mit einem anderen Editor.
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: stefan.apetz am 25 November 2022, 11:10:59
Danke für die Rückmeldung.

Zu Deiner Bemerkung "klingt von Hand angelegt": nein. Es gibt es Zusatzmodul für fhem, wo man bei Editoreingaben so ein highlighting mit Zeilennummern erhalten kann. Siehe Bild.

Der integriert sich direkt in den Dialog, wenn ich in einem Device das Attribut userreadings bearbeite (aber auch bei anderen Code-Spezifischen Eingabefeldern).
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: Otto123 am 27 November 2022, 23:56:25
na ok - aber so funktioniert doch alles?
Titel: Antw:Mehrere Reading-Inhalte in einem Userreading auf einer Zeile ?
Beitrag von: stefan.apetz am 28 November 2022, 05:49:24
Ja, läuft alles super.

Hab jetzt auch meinen blöden Syntax Fehler gefunden. Macht jetzt alles was es soll

Ergänzung: der Editor in erweiterter Form lässt sich wie folgt aktivieren:

https://wiki.fhem.de/wiki/Configuration#Syntaxhighlighting