getstate und dewpoint bei S300TH

Begonnen von C64Emulator, 28 Juni 2013, 08:43:30

Vorheriges Thema - Nächstes Thema

C64Emulator

Hallo zusammen,
lasse bei einigen S300TH mittels dewpoint-Modul den Taupunkt berrechnen. Im FHEMWEB wird der Wert im State auch angezeigt:STATE   T: 20.8 H: 60.1 D: 12.8 im Logfile ist er und geplotet wird er auch. Es scheint also zu funktionieren.
Wenn ich durch ein externes python-Skript mittels result = subprocess.check_output(["/opt/fhem/fhem.pl", "7072", "getstate sensor.outdoors"]) die Werte des Sensors holen will, werden nur die beiden originären Werte Temperatur und Feuchtigkeit zurückgeliefert: T:20.8 H:60.1
Mache ich da noch was falsch?
Bin ratlos
Helmut
Edit: ich sehe gerade, dass im Modul "99_getstate.pm" die CUL_WS extra behandelt werden und scheinbar nur zwei Werte zurückliefern. Ich verstehe allerdings nicht warum...

Puschel74

Hallo,

ZitatMache ich da noch was falsch?

Erstmal würde ich sagen - nein.

Der Taupunkt wird erst in FHEM berechnet und dann in das LogFile mit geschrieben bzw. in STATE mit abgelegt.
Ein getstate liest vermutlich state aus - und dort sind eben nur die Werte T und H zu finden.

Wie du aber von extern auf STATE zugreifen kannst kann ich dir nicht sagen.
Evtl. versuchst du die Werte aus dem Logfile aus zu lesen.
Dort hast du auch den Taupunkt drinnen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

rudolfkoenig

Der Autor Martin ist seit laenger nicht mehr aktiv, deswegen antwort ich mal:
Bei "normalen" Geraeten liefert getstate alle readings die ein Zahl als wert ergeben als einzeiler zurueck, CUL_WS ist eine Ausnahme, da wird nur state zurueckgeliefert, ueber die Ursache kann ich nur spekulieren.

getstate ist teil der contrib also nicht wirklich supportet, ich wuerde stattdessen
{Value("sensor.outdoors")}

verwenden, und vorher mir die Daten mit stateformat zurechbasteln, z.Bsp. als
attr sensor.outdoors stateFormat T:temperature H:humidity D:dewpoint

C64Emulator

Hallo,
ja, so geht's:
result = subprocess.check_output(["/opt/fhem/fhem.pl", "7072", "{Value('sensor.outdoors')}"])
Super, vielen Dank!

Das stateformat habe ich mir aber gespart, da ich die Rückgabewerte eh parsen muss.

Helmut