[Gelöst] Wie kann man Variablen zusammensetzen?

Begonnen von mi.ke, 17 Februar 2018, 14:31:47

Vorheriges Thema - Nächstes Thema

mi.ke

Moin.

Leider hat die Suche nicht das gewünschte Ergebnis geliefert, vermutlich weil ich die Frage schlecht gestellt habe, deswegen die Bitte um Hilfe. Bestimmt ganz trivial, aber ichbekomm es halt nciht hin

Ich möchte bei notifys nicht über den Readingnamen gehen, sonder über die Variable $NAME.
So weit, so einfach.

Jetzt muss ich diese Variable aber zur weiteren Verarbeitung zusammensetzen.

Also z.B. $NAME

$NAME_etwashintendran
wasvornedran_$NAME
vorne_$NAME_hinten
$NAME_$ETC


$A = (ReadingsVal("text_$NAME","state","")- $DA);



Da gibt es doch bestimmt einen normierte Schreibweise?

Kann mir bitte jemand einen Tip geben?

Danke im Voraus

mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

KernSani

Da würde ich mal nach sowas wie ,,perl concatenate" o.ä. googeln oder einfach einen Punkt (,,.") probieren...


Kurz, weil mobil...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

mi.ke

also was nicht geht (ich hatte natürlich vorher schon alles Mögliche probiert)

$A = (ReadingsVal("text_.$NAME","state","")- $DA);
$A = (ReadingsVal("text_ . $NAME","state","")- $DA);
$A = (ReadingsVal("text_."$NAME"","state","")- $DA);

FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Otto123

#3
Hast Du mal probiert im notify?
{Log 1, "$EVENT $NAME Text_$NAME"}

Zitat$NAME_etwashintendran
wasvornedran_$NAME
vorne_$NAME_hinten
$NAME_$ETC
Das wirkt innerhalb von "" genauso so wie Du willst, wenn ich Dich richtig verstanden habe.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mi.ke

also was funktioniert ist, wenn VORHER alles definiert wird


my $vA = "vorher_";
my $nA = "_nacher";
my $A_NAME = "$vA$NAME$nA";
$A = (ReadingsVal("$A_NAME","state",""));


Was ich gesucht hatte war eine schreibweise, wie man Variablen und Text in EINEM String verheiraten kann.
Also in Etwas so:
"'vorher_'.$NAME.'_nacher'"
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Otto123

Du hast mein Besipiel nicht probiert oder?
Probier mal dies in der FHEM Kommanozeile:
{"Zeit: $hour"} oder {my $a="Zeit: $hour";; return $a}

Es ist überall Perl, warum sollte das nicht gehen?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mi.ke

Dein Beispiel funktioniert, ja.
Danke dafür
Leider war Dein Beispiel nicht die Antwort auf meine Frage.

Denn
$A = (ReadingsVal("Text_$NAME","state",""));
funktioniert nicht.
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Otto123

Die schönste Aussage: funktioniert nicht   :'(
Funktioniert getestet
{Log 1, ReadingsVal($NAME,"Text_".$NAME,"") }
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mi.ke

Och Otto.

Schönste Aussage . . .
Natürlich funktioniert
$A = (ReadingsVal("Text_$NAME","state",""));nicht !!!

Von den 3 von Dir angebotenen Lösungen funkioniert die letzte, danke dafür, damit komm ich weiter.

Lieben Gruß
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

marvin78

Du solltest genauer arbeiten. Das was Otto schrieb funktioniert, weil es was anderes ist, als das von dir probierte. Dass er überhaupt so geduldig mit Leuten wie dir ist, ist aus deiner Sicht mit Dank zu quittieren, nicht mit patzigen Antworten. Demnächst postest du einfach Fehlermeldung und log und alles ist gut.

mi.ke

Zitat von: marvin78 am 17 Februar 2018, 18:21:44
Du solltest genauer arbeiten. Das was Otto schrieb funktioniert, weil es was anderes ist, als das von dir probierte. Dass er überhaupt so geduldig mit Leuten wie dir ist, ist aus deiner Sicht mit Dank zu quittieren, nicht mit patzigen Antworten. Demnächst postest du einfach Fehlermeldung und log und alles ist gut.

Normalerweise antworte ich nicht auf solche Troll Posts "Ihr seit alle undankbar"
Zähl mal, wie oft ich mich bedankt habe in diesem Thread.

Allerdings solltest Du Dich hinterfragen: "überhaupt so geduldig mit Leuten wie dir ist"

Und . . .
ach weisste, ich geb auf.

Schönes Wochenende

PS.
Otto, nochmal Danke




FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

marvin78

Dumm nur, dass du das Problem nicht verstanden hast und leider wieder kommst.

KernSani

Leute, haben wir Vollmond oder was? Holt doch alle mal tief Luft und entspannt euch.

@mi.ke: Ich gehe davon aus, dass du verstanden hast, dass eine Aussage "funktioniert nicht" relativ sinnlos ist, wenn keine näheren Angaben geliefert werden, was nicht funktioniert. Und - da hat Marvin recht - wenn dir jemand versucht zu helfen, ist es im Normalfall unklug, patzige Kommentare zu machen, sonst ist der Helfende ganz schnell weg.
@Marvin78: So sehr ich dein Fachwissen und deine Hilfsbereitschaft schätze, ist keinem damit geholfen, wenn hier schräg reingegrätscht und der TE "beschimpft" wird. Im Zweifelsfall wird sich Otto selbst zu helfen wissen.

Zusammenfassung: Habt euch alle lieb und tragt dazu bei, dass das Forum weiter seinen freundlichen und hilfsbereiten Charakter behält. Danke :-)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

marvin78

Sorry, aber ich werde das bei Wiederholungstätern immer wieder so machen. Wenn es keinerlei Interesse daran gibt, Dinge zu verstehen, ist das die richtige Art und Weise. Wenn ich schimpfe, hört sich das anders an.

mi.ke

#14




Zitat von: marvin78 am 17 Februar 2018, 19:31:58
Sorry, aber ich werde das bei Wiederholungstätern immer wieder so machen. Wenn es keinerlei Interesse daran gibt, Dinge zu verstehen, ist das die richtige Art und Weise. Wenn ich schimpfe, hört sich das anders an.


. . . und genau das mit dem Wiederholungstäter nehm ich Dir extrem krumm.
Ich bin jetzt seit 6 Jahren hier an Board, hab mit Sicherheit mehr versucht zu helfen als gefragt.
Ich hab mehrere 1000 Stunden investiert, um mein eigenes Ding zu bauen und zu verstehen und nicht bei irgendeinem abzukupfern.
Ach weisste, ich muss mich hier gar mich rechtfertigen.
Lies lieber Du mal in Ruhe, bevor Du irgendjemanden angreiftst,


FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara