PLAYBULB - charRead funktioniert, aber charWrite nicht

Begonnen von KernSani, 24 Februar 2019, 22:58:16

Vorheriges Thema - Nächstes Thema

KernSani

Hi Leon,

da ich gerade einen "Außen-Pi" montiert habe, dachte ich, ich könnte meine PLAYBULBS mal in FHEM einbinden (hatte ich mangels bluetooth-Reichweite nie ersthaft versucht). Grundsätzlich sind die Dinger auch ansprechbar, Status request funktioniert in FHEM und auf der Komandozeile:

gatttool -b XX:XX:XX:XX:XX:XX --char-read -a 0x2e
Characteristic value/descriptor: 40 00

Wenn ich allerdings "schreiben" will endet das in einem endlos hängendem Prozess (in FHEM bekomme ich ein unreachable und sehe den gatttool-Prozess, bis ich ihn kille. Auch auf der Kommandozeile kommt er nie zurück...

gatttool -b XX:XX:XX:XX:XX:XX --char-write -a 0x23 -n 00FF0000


Hast du irgendeine Idee, woran das liegen könnte?

Danke,

Grüße,

Oli

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux

Das ist bekannt und das schlimmste aktuell habe ich keine Lösung.
Es liegt wohl an der verwendeten gatttool Version in Verbindung mit den playbulbs.
Mit Debian 8 sollte es noch gehen.


Grüße
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

KernSani

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Vielleicht wäre sowas eine Option: https://stackoverflow.com/questions/51086932/ble-gatttool-interactive-shell-script (Python script am Ende) - vielleicht ein bisschen von hinten durch die Brust ins Auge, aber möglicherweise könnte man mit einem Perl-Expect den interactive mode nutzen...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux

Hilft doch nicht. Auch Python verwendet am Ende gatttool und ist somit nur ein gatttool wrapper.
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

KernSani

Ich will nicht python verwenden, sondern den interactive mode scripten... ich schau mal ob ich da heute abend was hinkriege...


Kurz, weil mobil
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux

Zitat von: KernSani am 25 Februar 2019, 12:53:31
Ich will nicht python verwenden, sondern den interactive mode scripten... ich schau mal ob ich da heute abend was hinkriege...


Kurz, weil mobil

Ach so. Damit hatte ich mal vor Jahren angefangen. Hat mir aber nicht gefallen. Aber bevor es gar nicht geht.
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

KernSani

#7
Vermelde Erfolg... Mit folgendem kleinem Code kann ich meine Playbulb auf "rot" setzen:


use Net::SSH::Expect;

my $host = "Pi-Zero";
my $user = "xxx";
my $bulb = "XX:XX:XX:XX:XX:XX";

#connect
my $ssh = Net::SSH::Expect->new (
    host => $host,
    user => $user,
    raw_pty => 1
);

$ssh->run_ssh() or die "SSH process couldn't start: $!";
($ssh->read_all(2) =~ /$host:/) or die "where's the remote prompt?";
$ssh->exec("stty raw -echo");

$ssh->send("gatttool -b $bulb -I");
$ssh->waitfor("$bulb",1) or die "gatttool not started";
$ssh->send("connect");
$ssh->waitfor("Connection successful",1) or die "couldn't connect";
$ssh->send("char-write-cmd 0x23 00FF0000");
$ssh->waitfor("$bulb",1) or die "couldn't write char";
$ssh->send("exit");
$ssh->waitfor("$host",1) or die "didn't come back to command prompt";

# closes the ssh connection
$ssh->close();


zumindest meldet ein statusRequest, dass sie rot ist (bin noch nicht rausgerannt und hab geguckt  ;))
Vielleicht komme ich die nächsten Tage noch dazu, dann versuche ich einen patch zu bauen (nächste Woche bin ich im Urlaub - da geht wahrscheinlich nix...)

Edit: Habe nachgesehen - Sie leuchtet rot :)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

CoolTux

Das ist ja mega. Geht aber generell über ssh, korrekt. Müsste man wenn dann auch Lokal ssh machen. Aber schon mal cooler Erfolg.
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

pc1246

Top
Dann stehen die nicht mehr nur noch zum Staubfangen rum.
BTW: Mit dem Handy gehen die auch nicht mehr, was aber wohl an der Standortfreigabe liegt. Probiere ich heute abend mal aus!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

KernSani

Anbei mal eine erste Version zum Testen:
* funktioniert nur über sshHost
* sshHost muß zwingend im format user@host angegeben sein (ohne user geht nicht)
* CPAN Modul Net::SSH::Expect muß vorhanden sein
* Attribut useExpect auf "1" setzen

Teilweise ist das Ding sehr träge, daher habe ich den Timeout extrem hochgesetzt (30 Sekunden).
set Devicename funktioniert (bei mir) nicht, ich habe das nicht genauer untersucht, ich habe aber nicht den Eindruck, dass das an der "expect"-Implementierung liegt, sondern dass da generell etwas nicht mag.

Beim Testen hat sich irgendwann mein remote-RasPi aufgehängt... meine Vermutung ist, dass zuviele SSH Sessions nicht ordentlich geschlossen wurden (weil der Timeout zu früh zugeschlagen hat)

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

pc1246

Moin
Uiii, mal sehen ob ich das heute abend noch schaffe. Bin erst anderweitig verplant.
Gruss und Danke
Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

Steffen

Hallo!

Gibt es hier zu schon ein paar Neuigkeiten?

Mfg Steffen

KernSani

Ich habe das ein bisschen aus den Augen verloren, werde mich aber spätestens am Wochenende nochmal dran setzen.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

hermann1514

Huhu... Gibt es beim den Playbulbs was Neues?
Oder gibt es andere Batterie betriebene Lichter die man per fhem Steuern kann?

Danke
Gruß Hermann