Hi,
weiß noch nicht genau ob ich es überhaupt benötigen werde, es fällt mir nur gerade nebenbei auf.
Mit mosquitto_pub -h 192.168.188.26 -u bli -P bla -t 'esl/image/test' -f storch.binkann ich binäre Payloads aus einer Datei heraus publizieren.
Wäre sowas mit dem MQTT2-Server auch möglich umzusetzen?
Gruß Thomas
Wenn man solche speziellen Anforderungen hat, sollte man einen echten mqtt-Server benutzen.
MQTT2_SERVER ist bei weitem kein vollständiger Ersatz und war auch nie als solcher konzipiert.
Ok, danke.
Habs jetzt eh so gelöst bekommen wie ich mir das vorgestellt hatte.
Schicke dem ESP einfach die Bild-Url (jpg/png) einer RSS Definition und er holt sich das Bild selbst.
Bin noch nicht dazu gekommen, probier ich aber später aus.
Grundsätzlich könnte ich die Datei auslesen und die Daten über den MQTT2 Server senden?
Der befragte Agent hat mir die Kenntnis gebracht, das MQTT2 die Payload durch seinen Kommando-Parser jagt und dabei Binärdaten zerschießt.
Als Base64 senden geht:
sub raw {
my $hex = '\00\FF\C0...'; # single quotes! (double quotes würden \FF etc. falsch interpretieren)
use MIME::Base64;
$hex =~ s/\\//g; # \FF → FF
$hex =~ s/\s//g; # Whitespace raus
my $b64 = encode_base64(pack("H*", $hex), ""); # zweiter Parameter "" = kein Zeilenumbruch
fhem("set MQTT2_Server publish esl_581_bw/image/raw $b64");
}
Weil in meinem Sketch bisher nur Rohbinärdaten mit 23040 Bytes vorgesehen waren, musste dort die Buffergröße (base64 von 23040 Bytes = 30720 Zeichen) angepasst werden.
Ich bleib bei meiner Http Variante, aber als Option auch aus FHEM via MQTT die Bilddaten zu senden, lass ich die größere Buffergröße im Sketch.