Variablen Zahlenwerte umbenennen in Namen
Moderator: Co-Administratoren
-
- Beiträge: 11
- Registriert: 24.12.2016, 23:24
Variablen Zahlenwerte umbenennen in Namen
Hallo alle zusammen,
ich habe folgendes vor:
Ich möchte den Zeichenketten Wert einer Systemvariable umschreiben in eine andere Variable mit Namen.
Beispiel:
Ich bin zu Hause, dann geht Variable 1 auf Zeichenketten Wert= "1"
danach soll Variable 2 auf Zeichenketten Wert: "Martin ist Zuhause" ändern.
Kann mir da jemand sagen wie der Script aussehen muss, wenn ich z.b. Werte von 1-50 habe und diese dann umbenannt werden ?
Ich würde mich riesig freuen, vielen Dank im Voraus
ich habe folgendes vor:
Ich möchte den Zeichenketten Wert einer Systemvariable umschreiben in eine andere Variable mit Namen.
Beispiel:
Ich bin zu Hause, dann geht Variable 1 auf Zeichenketten Wert= "1"
danach soll Variable 2 auf Zeichenketten Wert: "Martin ist Zuhause" ändern.
Kann mir da jemand sagen wie der Script aussehen muss, wenn ich z.b. Werte von 1-50 habe und diese dann umbenannt werden ?
Ich würde mich riesig freuen, vielen Dank im Voraus
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Variablen Zahlenwerte umbenennen in Namen
Hallo,
keine Ahnung, ob ich Dich richtig verstanden habe. Aber
Variable 1: 1,2,3,4,5,6 .... 50
Variable 2: Martin zu Hause, Martin am Kühlschrank, Martin auf Arbeit..... 50ter Wert
Nach dem Motto: Wenn Variable 1 =1 , dann änder bitte Variable 2 auf "Martin zu Hause"
Wenn Variable 1 = 3, dann änder bitte Variable 2 auf "Martin auf Arbeit"
Meinst Du das?
Dann wäre meines Erachtens der Code für ein Skript:
Andi
keine Ahnung, ob ich Dich richtig verstanden habe. Aber
Variable 1: 1,2,3,4,5,6 .... 50
Variable 2: Martin zu Hause, Martin am Kühlschrank, Martin auf Arbeit..... 50ter Wert
Nach dem Motto: Wenn Variable 1 =1 , dann änder bitte Variable 2 auf "Martin zu Hause"
Wenn Variable 1 = 3, dann änder bitte Variable 2 auf "Martin auf Arbeit"
Meinst Du das?
Dann wäre meines Erachtens der Code für ein Skript:
Code: Alles auswählen
dom.GetObject("Variable 2").State(dom.GetObject("Variable 1").Value());
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
-
- Beiträge: 11
- Registriert: 24.12.2016, 23:24
Re: Variablen Zahlenwerte umbenennen in Namen
Ja super, vielen Dank für die schnelle und richtig verstandene Antwort
Ist das dann so richtig mit den Zahl von Variable 1 und dem Namen der Variable 2 ?
Vielen Dank
Ist das dann so richtig mit den Zahl von Variable 1 und dem Namen der Variable 2 ?
Code: Alles auswählen
dom.GetObject("Variable 2").1(dom.GetObject("Variable 1").Martin ist Zuhause());
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Variablen Zahlenwerte umbenennen in Namen
Hallo,
probier mal aus, was passiert, wenn Du die Variable 1 auf "2" setzt und dann über Skript testen
ausführst. en.
P.S. Dito, wenn Du mal Variable 2 auf "Martin ist unterwegs" drehst und o.a. Code mit der Variable 2 testest.
Das sollte meines Erachtens Licht ins Dunkel bringen und Deine Frage beantworten.
Andi
probier mal aus, was passiert, wenn Du die Variable 1 auf "2" setzt und dann über Skript testen
Code: Alles auswählen
WriteLine(dom.GetObject("Variable 1").Value());
P.S. Dito, wenn Du mal Variable 2 auf "Martin ist unterwegs" drehst und o.a. Code mit der Variable 2 testest.
Das sollte meines Erachtens Licht ins Dunkel bringen und Deine Frage beantworten.
Andi
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
-
- Beiträge: 11
- Registriert: 24.12.2016, 23:24
Re: Variablen Zahlenwerte umbenennen in Namen
Hallo Andi,
scheinbar ist heute nicht so mein Tag, ich bekomme es leider nicht zum laufen.
Ich habe unter "Programme und Verknüpfungen" ein Programm, was wie folgt aussieht:
WENN Variable 1 = größer als 1 bei Aktualisierung
DANN = folgenden Script
Und 2x Systemvariablen:
Variable 1 = Variablentyp: Zahl / Min:1 max: 50 (1)
Variable 2 = Zeichenkette (Martin ist zu Hause)
Beim o.g. Script kommt folgender Fehler:
Liebe Grüße
Martin
scheinbar ist heute nicht so mein Tag, ich bekomme es leider nicht zum laufen.
Ich habe unter "Programme und Verknüpfungen" ein Programm, was wie folgt aussieht:
WENN Variable 1 = größer als 1 bei Aktualisierung
DANN = folgenden Script
Code: Alles auswählen
dom.GetObject("Variable 2").Martin ist Zuhause(dom.GetObject("Variable 1").1());
WriteLine(dom.GetObject("Variable 1").Value());
Variable 1 = Variablentyp: Zahl / Min:1 max: 50 (1)
Variable 2 = Zeichenkette (Martin ist zu Hause)
Beim o.g. Script kommt folgender Fehler:
Code: Alles auswählen
Error 1 at row 1 col 40 near ^ ist Zuhause(dom.GetObject("Variable1").1());
WriteLine(dom.GetObject("Variable1").Value()
Parse following code failed:
dom.GetObject("Variable2").Martin ist Zuhause(dom.GetObject("Variable1").1());
WriteLine(dom.GetObject("Variable1").Value());
Martin
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Variablen Zahlenwerte umbenennen in Namen
Hallo Martin,
jetzt bin ich baff. Ich dachte Du hättest ein paar Programme die die Variable 1 auf 1-50 setzen und Du wolltest nur eine Skriptzeile dafür, dass eine Variable 2 (auch Werteleiste) gleich gesetzt wird.
Fangen wir mal so an:
Du hast eine Variable 1 mit Werten zwischen 0-50?
Du hast eine Varriable 2 mit 50 Werten (Martin zu Hause, Martin.... usw)?
Wenn Du das hast, dann kannst Du per Skript testen mal
eingeben und schaust unter Systemvariablen.
Du wirst sehen, dass Varialbe 1 auf 2 steht und Variable 2 auf dem Wert, den Du bei der Werteleiste auf Position 3 stehen hast.
Es wird nämlich von 0 gezählt.
Variable 1:
0 = 1
1 = 2
2 = 3
....
50=49
Variable 2:
0 = Martin zu Hause
1 = Martin....
2 =
Wenn Du das verstande hast weißt Du auch was der Code hier bewirkt:
dom.GetObject("Variable 1").State(WERT);
WERT: dom.GetObject(dom.GetObject("Variable 2").Value() => der aktuelle Wert der Variable 2 soll oben bei Variable 1 gesetzt werden.
Ich hoffe Du kommst jetzt etwas besser klar. Ruhig Blut
Andi
jetzt bin ich baff. Ich dachte Du hättest ein paar Programme die die Variable 1 auf 1-50 setzen und Du wolltest nur eine Skriptzeile dafür, dass eine Variable 2 (auch Werteleiste) gleich gesetzt wird.
Fangen wir mal so an:
Du hast eine Variable 1 mit Werten zwischen 0-50?
Du hast eine Varriable 2 mit 50 Werten (Martin zu Hause, Martin.... usw)?
Wenn Du das hast, dann kannst Du per Skript testen mal
Code: Alles auswählen
dom.GetObject("Variable 1").State(3);
dom.GetObject("Variable 2").State(3);
Du wirst sehen, dass Varialbe 1 auf 2 steht und Variable 2 auf dem Wert, den Du bei der Werteleiste auf Position 3 stehen hast.
Es wird nämlich von 0 gezählt.
Variable 1:
0 = 1
1 = 2
2 = 3
....
50=49
Variable 2:
0 = Martin zu Hause
1 = Martin....
2 =
Wenn Du das verstande hast weißt Du auch was der Code hier bewirkt:
Code: Alles auswählen
dom.GetObject("Variable 2").State(dom.GetObject("Variable 1").Value());
WERT: dom.GetObject(dom.GetObject("Variable 2").Value() => der aktuelle Wert der Variable 2 soll oben bei Variable 1 gesetzt werden.
Ich hoffe Du kommst jetzt etwas besser klar. Ruhig Blut
Andi
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
-
- Beiträge: 11
- Registriert: 24.12.2016, 23:24
Re: Variablen Zahlenwerte umbenennen in Namen
Guten Abend,
und vielen vielen Dank für deine Geduld.
Ich werde mal in "Kurzform" erklären, was ich mir vorgestellt habe und hoffe so, das mein Anliegen verständlicher wird.
Also, meine Frau und ich möchten über die Geofency App. (iPhone) den Standort an die CCU senden und über mediola irgendwann auf einem Tablet im Flur darstellen.
Über das XML-API Addon auf der CCU wird mir folgender Code vom Handy gesendet:
Da ich nur Zahlen oder Wörter mit: "Das_gefällt_mir nicht" Unterstrichen senden kann, hatte ich die Idee eine Systemvariable anzulegen die nur Zahlen empfängt.
Und da kommst Du/Ihr ins Spiel
Die Idee (vielleicht hast du eine bessere) ist, die Variable1 als ZAHLENempfänger (1-50) zu nehmen (funktioniert bereits) und die Variable2 für die vernünftig, ohne Unterstrich geschriebenen Ortsangaben zu verwenden.
Wie ich jetzt "Martin ist Zuhause", "Martin ist auf Arbeit" etc. in eine Variable bekomme, ist mir egal, ich dachte nur, das es mit einem Programm und einem Script wo "Martin ist zu Hause..." usw. funktionieren könnte, oder ?
Ich wünsche noch einen angenehmen Abend und freue mich auf deinen Lösungsansatz
Liebe Grüße
Martin
und vielen vielen Dank für deine Geduld.
Ich werde mal in "Kurzform" erklären, was ich mir vorgestellt habe und hoffe so, das mein Anliegen verständlicher wird.
Also, meine Frau und ich möchten über die Geofency App. (iPhone) den Standort an die CCU senden und über mediola irgendwann auf einem Tablet im Flur darstellen.
Über das XML-API Addon auf der CCU wird mir folgender Code vom Handy gesendet:
Code: Alles auswählen
http://#####.meine-homematic.de:8181/config/xmlapi/statechange.cgi?ise_id=Variable2&new_value=1
Und da kommst Du/Ihr ins Spiel
Die Idee (vielleicht hast du eine bessere) ist, die Variable1 als ZAHLENempfänger (1-50) zu nehmen (funktioniert bereits) und die Variable2 für die vernünftig, ohne Unterstrich geschriebenen Ortsangaben zu verwenden.
Wie ich jetzt "Martin ist Zuhause", "Martin ist auf Arbeit" etc. in eine Variable bekomme, ist mir egal, ich dachte nur, das es mit einem Programm und einem Script wo "Martin ist zu Hause..." usw. funktionieren könnte, oder ?
Ich wünsche noch einen angenehmen Abend und freue mich auf deinen Lösungsansatz
Liebe Grüße
Martin
Re: Variablen Zahlenwerte umbenennen in Namen
Nimm einfach eine Systemvariable vom Typ werteliste. Diese kannst du direkt auf 0 bis n setzen, was dem n-ten Werteeintrag entspricht,
Re: Variablen Zahlenwerte umbenennen in Namen
Und warum so kompliziert mit einem Skript usw?
Das geht doch auch einfach per Programm. Es ist nur eine Fleißarbeit beim Programm erstellen.
Wenn > Variable 1 > Wert 1 > bei Änderung auslösen
Dann > Variable 2 > zu Hause
Sonst Wenn > Variable 1 > Wert 2 > nur prüfen
Dann > Variable 2 > bei der Arbeit
Sonst Wenn > Variable 1 > Wert 3 > nur prüfen
Dann > Variable 2 > in der Stadt
Sonst Wenn > ......
Das geht doch auch einfach per Programm. Es ist nur eine Fleißarbeit beim Programm erstellen.
Wenn > Variable 1 > Wert 1 > bei Änderung auslösen
Dann > Variable 2 > zu Hause
Sonst Wenn > Variable 1 > Wert 2 > nur prüfen
Dann > Variable 2 > bei der Arbeit
Sonst Wenn > Variable 1 > Wert 3 > nur prüfen
Dann > Variable 2 > in der Stadt
Sonst Wenn > ......
Viele Grüße!
Jörg
Jörg