Notify soll Skript auf Betriebssystemebene ausführen und zwei Werte übermitteln

Begonnen von Frini, 12 Dezember 2018, 15:31:14

Vorheriges Thema - Nächstes Thema

Frini

Hallo,
ich hab eine wirklich blöde Frage und bräuchte einmal Eure Hilfe. Folgende Situation habe ich:
mit dem Befehl systemCommand("php7.0 /home/pi/SetCurve.php 0 0.9 kann ich auf meiner Heizung die Heizkurve setzen 0 für Niveau und 0.9 für die Steigung.

Jetzt habe ich einen Dummy erstellt, mit welchem ich die Steigung über ein PulldownMenü einstellen kann. Das Niveau möchte ich über das Reading aus der dem Heizungs-device ziehen, welches leider nicht funktioniert :-(
SetCurve:.* {
my $Niv=ReadingsVal('vitoconnect100','HK1-Heizkurve-Niveau','0');
systemCommand("php7.0 /home/pi/SetCurve '$Niv' '$EVENT'");
}


Was aber funktioniert ist folgendes:
SetCurve:.* {
systemCommand("php7.0 /home/pi/SetCurve 0 '$EVENT'");
}

Ob jetzt 0 oder 1 oder 2 für die Steigung ist egal. Mit eingetragener Zahl klappt es.

Mein Ziel ist es, über zwei Dummies (einmal Niveau und einmal Steigung) beide Werte getrennt voneinander einzustellen, da aber der Befehl an die Heizung beide Werte enthalten muss, wollt ich den jeweils anderen aus dem aktuellen Reading des Heizungs Devices ziehen.

Ich hoffe das war einigermaßen Verständlich.  ::)

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

In '$EVENT' wird keine Variable aufgelöst.
Ich denke CoolTux meinte nicht Entweder sondern Entferne :)

Hier etwas ausführlicher.

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

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wernieman

Allerdings dürfte das mit seinen " vom systemCommand kollidieren ...

Btw:
Wenn Du in Deinem Script in der ersten Zeile stehen hast (o.Ä.)
#!/usr/bin/php7.0
Brauchst Du das Script nicht direkt mit php zu öffnen, sondern das System sucht sich den selber automatisch raus ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Frini


HK1.Steigung:.* {
my $Niv=ReadingsVal('vitoconnect100','HK1-Heizkurve-Niveau','0');
systemCommand("php7.0 /home/pi/SetCurve.php $Niv '$EVENT'");
}/code]
So funktioniert es. Super Danke.

Otto123

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

Frini

Ja ganz sicher. Ich habe im Vorfeld sämtliche Varianten ausprobiert. Aber $Niv und '$EVENT' nicht.

Ich habe mir jetzt zwei Dummies gebastelt einen für das Niveau und einen für die Steigung. Ich setze jetzt zuerst den Dummy für die Neigung und dann sende ich beide Werte mittels dem Notify an die Heizung. Werde diese Einstellungen hoffentlich nur noch diese Woche brauchen :-)

den Pfad in die php einzutragen habe ich gemacht, ist sogar korrekt. Hat bei mir aber noch nie funktioniert. Ich sach mal so, Hauptsache es läuft :-)
Bei der Ausführung eines Bash-Skriptes funktioniert dies übrigens.

Otto123

Naja ok, wird so sein. Ich hatte es mir ja auch so aufgeschrieben.
ZitatDamit es nicht zu leicht wird, kann man die String Terminatoren natürlich auch schachteln. Für die Auflösung von Perl Variablen ist dabei die äußere Klammer bestimmend. Das erste Beispiel gibt Hallo Welt aus, das zweite nur Hallo.
{my $a = "Welt";;qx "echo 'Hallo $a'"}
{my $a = "Welt";;qx 'echo "Hallo $a"'}
Die Variable $a wird im zweiten Fall nicht aufgelöst, sondern als Shell Variable interpretiert.

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