lepresenced daten nutzen außerhalb FHEM

Begonnen von gomez, 14 September 2017, 08:52:27

Vorheriges Thema - Nächstes Thema

gomez

Hallo,

ich möchte meine zwei NUT Beacons mit lepresenced erkennen und die Daten auch außerhalb von FHEM nutzen? Geht das? Ich habe gesehen das lepresenced ein Port aufmacht, aber wie komme ich an die Daten. Leider bin ich beim lesen des perl codes nicht weitergekommen.

Danke schon mal im voraus,

Gomez

CoolTux

Im Grunde musst Du nichts weiter machen wie einen TCP Socket auf zu bauen und die Daten aus zu lesen.
Ich gehe davon aus das Du Dich mit Perl aus kennst oder einer anderen Programmiersprache. Sonst bringt das alles ja nichts.
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

gomez

Danke CoolTux.

TCP Socket war schon mal ein wichtiger Tipp. Ich bin eher auf den oberen Layern der Programmierung unterwegs, mit Python. Dies tut nun aber schon:


import socket
host = '0.0.0.0'
port = 5333
s = socket.socket()
s.connect((host,port))
s.send("gib mit precence")
print s.recv(256)
s.close()


Was kann ich nun an den socket senden? Wo finde ich das im perl code? Finde nicht den Einstiegspunkt um an der richtigen Stelle zu suchen.

CoolTux

#3
Zitat von: gomez am 14 September 2017, 10:29:15
Danke CoolTux.

TCP Socket war schon mal ein wichtiger Tipp. Ich bin eher auf den oberen Layern der Programmierung unterwegs, mit Python. Dies tut nun aber schon:


import socket
host = '0.0.0.0'
port = 5333
s = socket.socket()
s.connect((host,port))
s.send("gib mit precence")
print s.recv(256)
s.close()


Was kann ich nun an den socket senden? Wo finde ich das im perl code? Finde nicht den Einstiegspunkt um an der richtigen Stelle zu suchen.

Also Du sendest nichts an den Socket, sondern Du ließt ihn nur aus. Du musst nun in einer Schleife dafür sorgen das immer wieder geschaut wird ob Daten am Socket bereit stehen die abgeholt werden können.
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

gomez

Alles klar danke.

lepresenced sendet noch nix, muss ich erstmal schauen wie das alles zusammenhängt.

CoolTux

Es kann ja auch nicht senden. Es hält die Daten lediglich bereit das sie abgeholt werden können oder ausgelesen. und das sollte auf jeden Fall alle paar Sekunden sein. So 0.5s oder so denke ich mal.
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

gomez

Ok, nur das ich es richtig verstanden habe:

Dies läuft bei mir als systemd service

/usr/bin/perl /usr/sbin/lepresenced --daemon --device hci0 --listenaddress 0.0.0.0 --listenport 5333 --loglevel LOG_DEBUG


Es tut sich auch was:


root@xxx:~# tail -f /var/log/syslog | grep lepresenced
Sep 14 11:23:07 xx lepresenced[1084]: [tid:0] main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Sep 14 11:23:09 xx lepresenced[1084]: [tid:0] main::stats_task: Active clients: 0, known devices: 1 (min/max age: 785/785)


Er kennt mein NUT Tag, meint aber er ist nicht da (Active clients: 0), oder?

Hier stimmt was nicht, es sollten immer wieder mal daten kommen:

root@bert103:~# cat precence.py
import socket
host = '0.0.0.0'
port = 5333
s = socket.socket()
s.connect((host,port))
while True:
    data, addr = s.recv(1024)
    if data:
        buffer += data
        print buffer
    else:
        break

CoolTux

Also wenn ich das richtig verstehe scannt lepresenced permanent und hält alle Ergebnisse vor. So verstehe ich das jedenfalls.
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