[gelöst] Devicestatus abfragen vom System

Begonnen von hugo, 28 Februar 2024, 09:47:49

Vorheriges Thema - Nächstes Thema

hugo

Hallo zusammen,

ich habe eine Anwendung die in Python geschrieben ist und möchte dort den Status von einem Device abfragen bzw einlesen.

Mir ist klar, dass in der Datei fhem.save der Status steht und ich diesen dann durch suchen finden könnte.

Gibt es hier schon Befehle oder Tools um dies zu verwirklichen.

Dank und noch einen schönen Tag.

Gruß Josef
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

fz55

Hallo Josef,

vielleicht ist python-fhem hilfreich.

Grüße
fz55

MadMax-FHEM

#2
In fhem.save steht der aktuelle Status aber nur GENAU NACH DEM SAVE drin!

Also nicht immer der aktuelle Status!

Du kannst doch den Status eines fhem Devices abfragen, z.B. per telnet in etwa so:

import telnetlib

DEVICE_NAME="DeviceName"
READING_NAME="ReadingName"

# telnet zu fhem
tn = telnetlib.Telnet('localhost',7072)

tn.write(bytes("{ReadingsVal('" + DEVICE_NAME + "','" + READING_NAME + "','n.a.')}\n",encoding='utf8'))
raw = (tn.read_some()).decode('utf-8')
EDIT: "lesen" der Antwort ergänzt 8)

So kannst du auch andere Aufrufe an fhem absetzen...

EDIT:
Zitat von: fz55 am 28 Februar 2024, 10:38:17Hallo Josef,

vielleicht ist python-fhem hilfreich.

Grüße
fz55
Oder nat. so 8)

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)

hugo

Dank  an fz55.

Hallo Joachim,
vielen Dank.
Die Methode mit Telnet gefällt mir gut.
Da ich aber in Python glatter Anfänger bin bekomme keine Antwort mit deiner Methode, wenn ich es teste.
Telnet ist in Fhem definiert.

Zitattn.write(bytes("{ReadingsVal('" + DEVICE_NAME + "','" + READING_NAME + "','n.a.')}\n",encoding='utf8'))
Kannst du mir bitte noch einen Tipp geben.
Danke

Josef
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

betateilchen

Dafür muss man doch kein telnet bemühen. Man definiert in FHEM ein HTTPAPI und kann dann mit einfach aufgebauten http-Requests arbeiten.

https://commandref.fhem.de/#HTTPAPI

http://<ip-addr>:<port>/<apiName>/read?device=<devname>&reading=<name>
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

MadMax-FHEM

Zitat von: hugo am 28 Februar 2024, 11:24:41Kannst du mir bitte noch einen Tipp geben.

Stimmt, du musst nat. die Antwort einlesen ;)

raw = (tn.read_some()).decode('utf-8')

Oben ergänzt...

Sorry, 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)

hugo

Danke euch,

beide Varianten funktionieren einwandfrei.

Jetzt habe die Qual der Wahl, aber besser so als keine Lösung.

Gruß Josef
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;