FHEM Forum

FHEM => Automatisierung => Thema gestartet von: ThomasDr am 01 Juni 2019, 23:19:47

Titel: [gelöst] ReadingsVal Konstruktion funktioniert nicht.
Beitrag von: ThomasDr am 01 Juni 2019, 23:19:47
Hallo,

logProxy benutze ich das xy Diagramm als Funktion benutze ich:

logProxy_xy2Plot([[ReadingsVal("esp32_mlx90640_MQTT","tempmaxY",0),ReadingsVal("esp32_mlx90640_MQTT","tempmaxX",0)]])

So weit funktioniert alles, da ich auch ältere Werte sehen will habe ich mit mit notify ein passendes Array konstruiert,
benutze ich das Array, funktioniert aber die Funktion nicht mehr:

logProxy_xy2Plot([ReadingsVal("TminArray","state",0)])

Kopiere ich den Wert einfach aus der Variabel funktioniert es wieder:

logProxy_xy2Plot([[21,10],[16,8]])

Im notify lese ich die Variabel auch über:

ReadingsVal("TminArray","state",0)

ein ohne Probleme.

weiß jemand wo hier der Fehler ist?
Titel: Antw:ReadingsVal Konstruktion funktioniert nicht.
Beitrag von: ThomasDr am 02 Juni 2019, 17:03:13
Hallo,

durch durchprobieren bin ich jetzt so weit deas die werte gelesen werden und kann auch den unterschied zwischen funktioniert und funktioniert nicht sehen.

;c 0
;p 21 13 14 16
#Func:logProxy_xy2Plot([[ReadingsVal("TminArray","state",0)]])
;c 0
;p 23 21
;p 12 18
#Func:logProxy_xy2Plot([[23,21],[12,18]])

Jetzt ist die Frage was muss in die TminArray Variable damit die beiden Werte einzeln erkannt werden?

Schöne Grüße
ThomasD
Titel: Antw:ReadingsVal Konstruktion funktioniert nicht.
Beitrag von: CoolTux am 02 Juni 2019, 18:51:45
Was für einen Inhalt hat denn TminArray, sicherlich kein Array, eher ein String
Titel: Antw:ReadingsVal Konstruktion funktioniert nicht.
Beitrag von: ThomasDr am 03 Juni 2019, 14:05:32
Hallo,

Ich würde auch sagen einen String, der wie ein Array aussieht.
Vielleicht sollte ich mal ein echtes Array benutzen, wenn das im Notify möglich ist.

[23,21],[12,18]

Das Notify sieht so aus:

esp32_mlx90640_MQTT:tempminX:.* {
my $TmiX = ReadingsVal("esp32_mlx90640_MQTT","tempminX",0);
my $TmiY = ReadingsVal("esp32_mlx90640_MQTT","tempminY",0);
my $TmiArray = ReadingsVal("TminArray","state",0);
my $TmiA = "[$TmiY,$TmiX]";
$TmiArray = "$TmiA,$TmiArray";
fhem("set TminArray $TmiArray");
}


Schöne Grüße
Thomas
Titel: Antw:ReadingsVal Konstruktion funktioniert nicht.
Beitrag von: CoolTux am 03 Juni 2019, 14:07:29
Zerlege doch den String und füge dann einzeln die Teile in die Entsprechende Position
Titel: Antw:ReadingsVal Konstruktion funktioniert nicht.
Beitrag von: ThomasDr am 04 Juni 2019, 19:55:23
Hallo,

wie sollte den der String zerlegt werden, und wo?
Bei der SVG Grafik?

Etwas bin ich mit dem Notify und speichern eines Array weiter gekommen, aber leider nicht weit genug, ein eindimensionales Array ist kein Problem,
aber mit dem zweidimensionalen funktioniert es noch nicht.
Zum Array speichern braucht man:

my $json_str = encode_json(\@TmiArray);


Und zum wieder einlesen:

@TmiArray = @{decode_json(ReadingsVal("T1Array","state",0))};


Aber vielleicht hat ja auch jemand auf meine andere Frage eine Antwort, dann würde ich es über das FileLog machen:
https://forum.fhem.de/index.php/topic,101098.msg945448.html#msg945448 (https://forum.fhem.de/index.php/topic,101098.msg945448.html#msg945448)

Schöne Grüße
ThomasDr
Titel: Antw:ReadingsVal Konstruktion funktioniert nicht.
Beitrag von: ThomasDr am 11 Juni 2019, 17:04:07
Hallo,

ich habe jetzt eine Lösung gefunden.
Das Notify muss kein Array sein, es muss nur so aussehen.
Zum Beispiel so:

[[2,5],[4,3]]


Aber beim einlesen muss die Variable dann als Array gelesen werden.
Zum Beispiel so:

@{decode_json(ReadingsVal("T1Array","state",0))};


Schöne Grüße
ThomasDr