Eurotronic comet blue Modul Entwicklung

Begonnen von gent, 28 November 2016, 21:45:59

Vorheriges Thema - Nächstes Thema

mokeo

Beispiele für status:

gelesene Bytes von gatttool: 00 00 08
status: 080000
temperature_satified true
alle anderen false

gelesene bytes von gatttool: 81 00 08
status: 080081:
childlock true
manualmode true
temperature_satisfied true
alle anderen false

gelesene bytes von gatttool: 01 00 08
status: 080001:
manualmode true
temperature_satisfied true
alle anderen false

Das habe ich so gemacht, weil ich die Bitmasks aus dem Pythonscript übernommen hatte.
Damit konnte ich die Werte aus Python mit meinen erzeugten genau vergleichen.
Ich könnte mir vorstellen, dass sowas aus einem vorherigen reverse engineering stammt.
Ich dreh es gleich mal um...

mokeo

Ohne Byteverdrehung
#!/usr/bin/perl
use strict;
use warnings;
use POSIX;
my $hci="hci0";
my $mac="5C:31:3E:xx:xx:xx";
my $pin="00000000";
my $handle="0x3d";
my $cmd;
my @gtResult;
my $status;
my %statusBitMask = (
    'childlock' => 0x800000,
    'manual_mode' => 0x010000,
    'adapting' => 0x000400,
    'not_ready' => 0x000200,
    'installing' => 0x000400 | 0x000200 | 0x000100,
    'motor_moving' => 0x000100,
    'antifrost_activated' => 0x100000,
    'temperature_satisfied' => 0x000008,
    'low_battery' => 0x000800
);

qx(gatttool -i $hci -b $mac --char-write-req -a 0x47 -n $pin);
$cmd = "gatttool -i $hci -b $mac --char-read -a $handle";
@gtResult = split( ": ", qx($cmd) );
print "read value: " . $gtResult[1];
# $status = join("", split(" ", $gtResult[1]));
$status = $gtResult[1];
$status =~ s/\s+//g;
print "status: ".$status . "\n";
my $revstdec = sprintf("%d", hex($status));
print "revstdec: ".$revstdec ."\n";
keys %statusBitMask;
while(my($k, $v) = each %statusBitMask) {
my $bit;
if ($revstdec & $v) {
$bit = "true";
} else {
$bit = "false";
}
print $k . " - " . $bit ."\n";
};


CoolTux

Vielen Dank. Das schaue ich mir die Tage an.



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

mokeo

Hallo CoolTux,

bist du schon dazu gekommen?
Kann ich noch irgendetwas beitragen?

Gruß
mokeo

CoolTux

Hallo,

Leider finde ich aktuell keine Zeit dafür. Sorry.

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