[GELÖST] readings über Telnet abrufen?

Begonnen von moelski, 18 Dezember 2014, 09:33:55

Vorheriges Thema - Nächstes Thema

moelski

Moin !

So langsam komme ich hinter fhem und meine Testinstallation tut auch soweit. Nun wollte ich mittels Telnet ein par aktuelle Readings abholen. Nur scheinbar geht das gar nicht, oder? Ich kann zwar xmllist aufrufen und da ist das letzte reading drin (in meinem Fall ein Analog Wert von einem arduino + Firmata + LM335), aber das kanns ja nicht sein, oder?

Ich hatte ja gehofft das es mittels get Firmata_ANALOG reading klappt. Aber da kommt nix zurück.

Muss ich jetzt wirklich die Werte über xmllist parsen? Und gibt es keinen Grund das ich nciht per Telnet an die readings komme?

Mir ist klar das es auch mit einem HTTP Aufruf gehen würde. Aber mir gehts erstmal um Telnet.

Grüße Dominik
Grüße Dominik

Hans Franz

Hallo

{ReadingsVal ("Firmata_ANALOG", "reading", "")}
geht auch über Telnet. Wenn dein reading wirklich reading heisst.

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

moelski

Hallo Hans,

herzlichen Dank dafür !!!!
Ich hatte schon angefangen jsonlist zu nutzen und dann das Gerät zu lesen. Da stehen die readings auch drin.

Aber das ist deutlich schlanker und der Server muss nicht alles durch json schieben.

Grüße Dominik
Grüße Dominik

hans88

Hallo
trotz dieser anleitung ist es mir nicht gelungen auf ein reading übert telent zuzugreifen.
was  muss ich eingeben um ein reading zu erhalten.

Für jede hilfe dankbar

Gruß Hp

Markus Bloch

Wie heißt dein Gerät und wie heißt das Reading was du anzeigen willst?

Hans Franz hat weiter oben ja bereits die Lösung gepostet. Sie funktioniert schematisch gesehen folgendermaßen:

{ReadingsVal ("DEFINITIONS-NAME", "READING-NAME", "STANDARDWERT")}

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

hans88

vielen Dank für deine Anwort

Das module heist "WTCX5" selbst erstellt,  damit lese ich die Daten über ebus aus meiner weishaupt wtc15.
Habe ich 2013 hier veröffentlich.


das reading "Vorlauf-Soll"

Gruß H.P


Markus Bloch

Ich versteh noch immer nicht, was das Problem ist. Wie bereits mehrfach geschrieben funktioniert das mit:

{ReadingsVal ("DEFINITIONS-NAME", "Vorlauf-Soll", "")}

Bitte DEFINITIONS-NAME durch den Namen deiner Definition vom Typ WTCX5 ersetzen.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

hans88

Tut mir leid wenn ich dich nerve.
ich bin halt Amateur.

was ist der DEFINITIONS-NAME ?

meine readings sehe wie folgt aus:

DEF /dev/ttyAMA0@2400

DeviceName /dev/ttyAMA0@2400
FD       9
NAME      WTCX5
NR       11
PARTIAL      
STATE      opened
TYPE       WTCX5
Readings   Aussen   5
   

Beriebsart   Winter
Brenner      Aus
Leistung   0
Modus      X
Status      A470a
Vorlauf-Ist   35
Vorlauf-Soll   44
WWasser-Ist   53
WWasser-Soll   49
logBAussen   5
logBDatum   04.03.2016


Was muss ich über telent eingeben um irgendein reading
zu erhalten  ?

Gruß H.P.


Markus Bloch

Zitat von: hans88 am 04 März 2016, 21:09:39
DEF /dev/ttyAMA0@2400
DeviceName /dev/ttyAMA0@2400
FD       9
NAME      WTCX5
NR       11
PARTIAL      
STATE      opened
TYPE       WTCX5

Das sind Internals. Sowas wie "interne Daten". Die werden durch FHEM selber "intern" verwaltet. Hier findest du auch den Definitions-Namen:

Zitat von: hans88 am 04 März 2016, 21:09:39
NAME      WTCX5

Das ist die Bezeichnung die du beim definieren durch den Befehl "define" angibst.

Zitat von: hans88 am 04 März 2016, 21:09:39
Readings
Aussen   5
Beriebsart Winter
Brenner      Aus
Leistung   0
Modus      X
Status      A470a
Vorlauf-Ist   35
Vorlauf-Soll   44
WWasser-Ist   53
WWasser-Soll   49
logBAussen   5
logBDatum   04.03.2016

Das sind Readings, Daten die den Status der entsprechenden Definition anzeigt.

Zitat von: hans88 am 04 März 2016, 21:09:39
Was muss ich über telent eingeben um irgendein reading
zu erhalten  ?

Normalerweise, wird das über den "get"-Befehl gelöst, analog wie es moelski im Initial-Beitrag gepostet hat. Das heißt man gibt im telnet in deinem Falle folgendes ein:

get WTCX5 Vorlauf-Soll

Dies setzt aber Voraus, dass der "get"-Befehl entsprechend so vom Modul bereitgestellt wird/ist. Ist dies nicht der Fall sollte der Modulautor dies entsprechend nachimplementieren (siehe dazu im Wiki: http://www.fhemwiki.de/wiki/DevelopmentModuleIntro). Dies ist der Standardweg.

Sollte dies aber nicht funktionieren, so muss man auf Perl-Code zurückgreifen und den Wert mittels der Funktion ReadinsVal() auslesen. In diesem Fall gibt man folgendes im Telnet ein:

{ReadingsVal ("WTCX5", "Vorlauf-Soll", "")}

Gruß
Markus

Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

hans88

o.k.

ich habe verstanden

ich hab da immer ein get davorgesetzt.


Danke für die Hilfe

H.P