System Befehl mit reading übergeben

Begonnen von jostmario, 03 Dezember 2018, 20:11:00

Vorheriges Thema - Nächstes Thema

jostmario

Hallo,

kann ich ein system befehl mit einem Reading füllen.
define starten at +*00:00:02 {system("python /opt/fhem/simpletest.py 900")}
die 900 würd ich jetzt gerne aus einem reading nehmen und übergeben.

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

Otto123

#1
Hi,

auf die Schnelle meine Notiz -> https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html

system() ist nicht die beste Wahl.

Prinzip:
{my $Var = ReadingsVal("Device","reading","");; system("python /opt/fhem/simpletest.py $Var")}

So kannst Du auch in der FHEM Kommandozeile testen.

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

MadMax-FHEM

#2
Ja warum nicht ;)

define starten at +*00:00:02 {my $Value=ReadingsVal("DeviceName", "ReadingName", "Ersatzwert");; system("python /opt/fhem/simpletest.py $Value")}

Sollte gehen.

Anmerkung: system-Aufrufe sind blockierend (also wenn der pyton Aufruf länger dauert macht fhem solange nix)...

Besser (und sollte eigentlich auch gehen):

define starten at +*00:00:02 {my $Value=ReadingsVal("DeviceName", "ReadingName", "Ersatzwert");; fhem("\"python /opt/fhem/simpletest.py $Value\"")}

EDIT: @Otto: du immer mit deinen schnell geschossenen Links ;)

Aber bist du sicher, dass alle 2s eine kluge Idee ist!?
Warum so kurz hintereinander immer wieder!?
Da musst du aber sicher sein, dass das nicht länger dauert, sonst überholst du dich ja... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

amenomade

define starten at +*00:00:02 {system("python /opt/fhem/simpletest.py ".ReadingsVal("Device","Reading","defaultvalue"))}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

#5
Na jetzt habt ihr mich alle beim editieren und fertig schreiben überholt :) Aber meinen ganzen Text will ich eh nicht nochmal abschreiben. Die Frage hat ja ein paar Facetten.
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

jostmario

Hallo,

Danke es funktioniert.
Das ausgeführte Python Skript setzt nur das PWM an einer SPI PCA9685 Karte.
Dieses soll einen Lüfter eines Holzvergasers steuern.
Die Werte sollen dann von dem PID30 Regler kommen.
Deshalb muss ich den Lüfter im sec Takt nachregeln.


Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

MadMax-FHEM

Welche Variante hast du jetzt genommen?

Hoffentlich eine ohne "system"!?

Musst halt aufpassen, dass die Kommandos schnell genug abgearbeitet werden, sonst "stauen sie sich auf"...

Dann kannst du ja auf gelöst setzen, umbenennen in beispielsweise [gelöst] System Befehl mit reading übergeben

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)