Hallo Zusammen,
im Rahmen eine Wärmedämmung habe ich 6 (2x3) dezentrale Lüfter mit Wärmerückgewinnung installiert. Diese sind von der Firma Blauberg und vom Typ Vento Expert A50-1 W V.2.
In einem anderen Beitrag habe ich gesehen, dass jemand ebenfalls Hex zu seinem Lüfter schickt, aber es scheint mir eher ein V.1 Lüfter gewesen zu sein, der hat ein völlig anderes Protokoll, ohne Prüfsumme usw.
Hier ist die Protokollbeschreibung: https://blaubergventilatoren.de/uploads/download/smart_home_vento_expert_w_v2cw201910172.pdf
Ich finde grundsätzlich, dass das Protokoll ziemlich durcheinander ist und ziemlich Umfangreich - also gemessen an der Funktion der Lüfter. Wie auch immer…
Ich habe mehrere Probleme:
1. Prüfsumme:
Die Prüfsumme wir aus der Addition aller Hex-Bytes (mit Ausnahme der ersten beiden) gebildet.
Daraus ergibt sich eine 2-Byte Prüfsumme, die das vorletzte und letzte Byte darstellen.
Ich weiß leider nicht, wie ich das in IPS anständig berechnen kann.
a) Ist die Schreibweise für HEX-Code in den String richtig?
Zum Beispiel
$IDWZ = "\x00\x27\x00\x43\x58\x42\x57\x0A";
(Das ist die ID eines Lüfters)
Wenn ich das mit USCK_SendText abschicke wird das als HEX verschickt.
b) Ich weiß nicht wie ich das überhaupt mit einem Hex-String wie zum Beispiel
"$IDWZ = \x00\x27\x00\x43\x58\x42\x57\x0A";
irgendwas berechnen könnte. Also wenn ich z.B. aus dem Ding eine Prüfsumme durch Addition der Bytes errechnen will. (Es kommt mehr dazu an Bytes und die Byte-Läge ist je nach Befehl auch variabel)
2. Senden & Empfangen:
Wenn ich mich an generelle Kommunikation mit Sockets richtig erinnere, dann kann ich die HEX-Antwort die im Debug ankommt erst einmal nicht weiter verwursten, aber es sollte - wenn das Gerät antwortet was drinstehen, oder? (Ich nehme an mein HEX-String ist immer noch Müll, daher kommt nix zurück)
Zum verarbeiten brauche ich eine Regvar, oder?
3. Ausgabe, zur Kontrolle:
Ich habe jetzt einmal das hier gebastelt:
<?php
$IDWZ = "\x00\x27\x00\x43\x58\x42\x57\x0A";
$a = "\xFD\xFD\x02\x10";
$b= $a .$IDWZ;
echo ($b);
USCK_SendText(11739, $b);
Bei echo kommen nur unleserliche Zeichen raus, d.h. die Ausgabe erfolgt nicht in HEX, wahrscheinlich eher dekodiert. Ist zwar nicht essentiell, aber wie könnte ich das ändern?
Das ist aber die am wenigsten wichtige Frage
Gruß,
Maeffjus