Seite 4 von 15

Re: MQTTDevice Version 2 & Platine

Verfasst: Freitag 19. Februar 2021, 14:14
von Innuendo
Prima! Auch der Tipp von Frudel ist gut. Die Lösung hinterlege ich in der Anleitung auf gitpages.

Die vielen Steps Plugins habe ich in ein plugin zusammengefasst.

Re: MQTTDevice Version 2 & Platine

Verfasst: Freitag 19. Februar 2021, 16:02
von Lowine
Ich wollte der Reihe nach vorgehen. Dabei hat war der erste Vorschlag schon erfolgreich.

Re: MQTTDevice Version 2 & Platine

Verfasst: Freitag 19. Februar 2021, 17:26
von Frudel
Lowine hat geschrieben: Freitag 19. Februar 2021, 13:45 Jetzt funktioniert es !
Ich habe ein Reinstall mit Upgrade von paho-mqtt gamacht.

hier der Ordner plugins
plugins.jpg

Super, danke an alle.
Jetzt geht es weiter, bis zur nächsten Hürde

Lowine
Wir erwarten diese mit Spannung!

Re: MQTTDevice Version 2 & Platine

Verfasst: Sonntag 14. März 2021, 16:09
von klauslilie
Hallo ich hatte die gleichen Probleme wie #142...
Nachdem ich die Schritte durchgeführt habe, stehe ich jetzt vor dieser Hürde..
2021-03-14 16_01_51-Window.png
2021-03-14 16_01_51-Window.png (8.83 KiB) 6647 mal betrachtet
Ich hoffe jemand hat eine Idee ...

Viel Grüße
KlausLilie

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 22. März 2021, 18:11
von Jannis0711
Hi Innu,

ich habe gerade gesehen, dass CBPI 4 läuft und gleich installiert.... (auch ohne pi)... funktionieren die MQTT-Plugins auch auf darauf?

Grüße
Jannis

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 22. März 2021, 19:14
von Innuendo
Es gibt eine erste MQTT Implementierung in CBPi4. Ich habe es mir aber noch nicht angesehen. CBPi4 ist soweit ich mitgelesen habe noch im Status "nur gucken nicht brauen". Sobald CBPi4 einsatzfähig ist, werde ich versuchen die Firmware anzupassen.

Re: MQTTDevice Version 2 & Platine

Verfasst: Mittwoch 24. März 2021, 17:54
von klauslilie
Info zu meinen Problem mit dem fehlenden Modul eventlet https://hobbybrauer.de/forum/viewtopic. ... 51#p420351
Vielleicht hilft es ja jemandem mit dem gleichen Problem :Bigsmile

Das Modul eventlet war auf dem raspi installiert und auch mit pip list sichtbar.
eventlet 0.30.2

In der ./craftbeerpi3/requirements.txt musste ich den entsprechenden Eintrag bzgl. Version anpassen...
eventlet==0.30.2

Nach einem reboot war der Fehler immer noch vorhanden :Waa

Dann habe ich als letzten Versuch einfach eventlet neu installiert..
sudo pip install eventlet==0.30.2

Nach einem Reboot funktioniert es jetzt wunderbar! :thumbsup
Ich kann nun die MQTTActor und MQTTSensor in der CBPI3.0 auswählen

Da werde ich nun im weiteren Schritt mal versuchen den MQTTDevice auf der Platine zu verbinden...

Gruß
KlausLilie

Re: MQTTDevice Version 2 & Platine

Verfasst: Samstag 27. März 2021, 19:13
von brilli_willi
Ich habe heute mein MQTT in Betrieb genommen.
Strom via IDS2 funktioniert und nach Einrichtung des WLAN kam ich auch auf die Weboberfläche. Danach habe ich das Display aktiviert und meinen Temperaturfühler (Dallas DS18B20 vom Sensorshop24 in Einschraubhülse) angeschlossen.
Nachdem ich den Sensor hinzugefügt habe zeigt dieser mir eine Zimmertemperatur von 127,8 Grad an.
Hat irgendjemand eine Idee woran das liegen kann? Verkabelung hab ich mehrfach geprüft, der Widerstand unter dem Wemos ist auch vorhanden.

Re: MQTTDevice Version 2 & Platine

Verfasst: Samstag 27. März 2021, 19:55
von Innuendo
Häng das Device bitte mal per USB an Deinen PC und schließe nur den DS18B20 an.
Hast Du ein Voltmeter? Mess bitte mal die Spannung an GND-VCC und GND-DATA an den Sensor Schraubklemmen.

Innu

Re: MQTTDevice Version 2 & Platine

Verfasst: Sonntag 28. März 2021, 09:18
von brilli_willi
GND-VCC 5,09V
GND-DATA 3,3V

Re: MQTTDevice Version 2 & Platine

Verfasst: Sonntag 28. März 2021, 09:31
von brilli_willi
Kurios ist auch das der Sensor 127,8 Grad bei Strom via IDS2 anzeigt und nur 85 Grad bei Strom über ein Netzteil via USB.

Re: MQTTDevice Version 2 & Platine

Verfasst: Sonntag 28. März 2021, 11:08
von JackFrost
brilli_willi hat geschrieben: Sonntag 28. März 2021, 09:31 Kurios ist auch das der Sensor 127,8 Grad bei Strom via IDS2 anzeigt und nur 85 Grad bei Strom über ein Netzteil via USB.
85 °C ist der Wert wenn noch keine Wandlung durchgeführt wurde.
Bei den 127,8 müsste man mal in der Lib schauen, es könnte aber ein CRC Fehler, damit wird die Temperatur ungültig.
Da der DS18B20 nur bis 125°C senden kann, müsst das der Wert der Lib für einen Fehler sein.

Der Pullup für den 1Wirebus ist sicher ein 4k7 und kein deutlich abweichender Wert ?

Gruß JackFrost

Re: MQTTDevice Version 2 & Platine

Verfasst: Sonntag 28. März 2021, 12:25
von brilli_willi
Kann ich das mit dem Widerstand irgendwie messen?

Der Fühler ist auch vom Sensorshop24. Da hast du deinen doch auch her, oder? Kann es etwas mit der Kabellänge zu tun haben? Habe einen 3-Leiter mit 3m Kabel.

Re: MQTTDevice Version 2 & Platine

Verfasst: Sonntag 28. März 2021, 13:52
von JackFrost
brilli_willi hat geschrieben: Sonntag 28. März 2021, 12:25 Kann ich das mit dem Widerstand irgendwie messen?

Der Fühler ist auch vom Sensorshop24. Da hast du deinen doch auch her, oder? Kann es etwas mit der Kabellänge zu tun haben? Habe einen 3-Leiter mit 3m Kabel.
Du kannst den Widerstand mit dem Multimeter messen. Platine von der IDS oder Netzteil trennen, den DS18B20 abstecken und den Wemos abstecken.
Dann direkt am Widerstand messen.

Ich hatte hier im Haus mal 3 Messtellen wo ich in Summe 8m Kabel hatte. Das alles mit 3,3V. Die 3 Meter sollten also nicht stören. Wenn du jemand mit einem Logic Analyser kennst, dann mal messen was auf dem 1-Wire bus ist.

Zur Not kannst du mir die Platine, Netzteil und den Sensor schicken, dann schau ich mir das an.

Gruß JackFrost

Re: MQTTDevice Version 2 & Platine

Verfasst: Sonntag 28. März 2021, 16:45
von Innuendo
brilli_willi hat geschrieben: Sonntag 28. März 2021, 09:18 GND-VCC 5,09V
GND-DATA 3,3V
das ist ok. Der Widerstand oder Kabellänge.
127 Grad ist connected aber keine Adresse. Die Adresse wird dir aber anhezeigt?

Re: MQTTDevice Version 2 & Platine

Verfasst: Sonntag 28. März 2021, 17:57
von brilli_willi
Ja, Adresse kann ich beim Hinzufügen eines Sensors auswählen, Name und Topic vergeben und speichern.

Re: MQTTDevice Version 2 & Platine

Verfasst: Mittwoch 7. April 2021, 15:13
von skybandit
Liebe Leute, ich bräuchte mal Hilfe bei der Konfiguration der IDS2 im Device und im CBPi3.
Geplant ist ein Setup mit nur einem Kessel auf der IDS2.

Zunächst habe ich in der Device-Gui die IDS aktiviert, die Topic gesetzt und die Pinbelegung angepasst und gespeichert.
Um die Pinbelegung noch mal zu überprüfen, habe ich die Einstellungen noch mal geöffnet und festgestellt, dass das Textfeld für die Topic wieder leer ist. Scheinbar geht der gespeicherte Topic-Eintrag verloren? Oder funktioniert die Konfiguration das nur mit angeschlossener IDS2?
2021-04-07 14_31_04-MQTTDevice2.png
Wie geht es dann im CBPi weiter?
Den Sensor habe ich entsprechend der Doku angelegt. Nur beim Induktionskochfeld bin ich mir unsicher.
Zunächst müsste ich ja die IDS2 als Aktor mit der gleichen Topic wie im Device als Type= MQTTActor anlegen?
Damit würde ich dann den Kessel anlegen und da verstehe ich jetzt nicht so ganz wie es weiter geht.
2021-04-07 15_07_59-CraftBeerPi 3.0.png
Beim Kessel Setup ist dann der Actor und der Agitator der zuvor angelegte Actor?
Wie ist das mit der Logic? Wie ermittle ich die PID Werte? Topf mit 20l füllen und dann??

Re: MQTTDevice Version 2 & Platine

Verfasst: Mittwoch 7. April 2021, 20:54
von Innuendo
Hallo,
hast Du ein Update auf Version 2.5 von einer Version 2.2x gemacht? Meine Vermutung ist, dass Du das Update auf dem alten SPIFFS Dateisystem gemacht hast. Es dürften dann aber gar keine Einstellungen bzw Veränderungen gespeichert werden. Wenn dem so ist: bitte komplett neu flashen. Das Dateisystem muss im Format LittleFS erstellt werden. Falls das nicht so ist, sende mir per PN bitte deine config.txt

Im CBPi3 wird der Aktor vom Typ MQTT erstellt - das stimmt. Dafür habe ich im github repository das Addon cbpi-mqttPub hinterlegt. Das Addon unterstützt auch die Visualisierung. Die Logic kannst Du je nach Kessel auf Hysteresis oder PID einstellen. Fir die PID Logic liegen im github cbpi-PIDArduinoPowerOutput und cbpi_PIDAutoTunePowerOutput. Mit der AutoTune Logic ermittelst Du P, I und D für Deinen Kessel mit einer typischen Füllmenge.
Innu

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 8. April 2021, 12:04
von Innuendo
Version 2.52 liegt auf github

- Fixed: MQTT Topic IDS2 wurde nicht angezeigt (Tippfehler)
- Fixed: Display Update Intervall wurde fehlerhaft angezeigt (Zahlendreher)
- Fixed: Sommerzeit wurde nicht geprüft (die letzte Optimierung hat die Überprüfung Sommerzeit wegoptimiert)

Danke für die Hinweise. Das Update kann ab Version 2.5x per WebUpdate eingespielt werden.
Innu

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 12. April 2021, 14:36
von chrs1978
Ich habe folgenden Fehler nachdem ich das angepasste MQTT Plugin in den Plugins ordner gecloned habe :

Failed to load plugin cbpi-mqttPub
Missing parentheses in call to 'print'. Did you mean print("payload " + msg.payload)? (__init__.py, line 110)

Kann es sein, dass dieses Plugin nicht mit der Python3 Version von cbpi3 zusammenpasst ?

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 12. April 2021, 14:45
von Innuendo
Hast Du die Datei editiert und möglicherweise die Tab Ordnung verändert? Die print Anweisung steckt in einem try catch Block.

Code: Alles auswählen

            try:
                print "payload " + msg.payload
Zweite Möglichkeit: hast Du noch ein anderes MQTT Plugin aktiv? Bitte das Verzeichnis Plugins prüfen.
Innu

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 12. April 2021, 14:51
von chrs1978
Habe kein weiteres Plugin im Ordner. Am Code vom plugin habe ich nichts gemacht. Frisch gecloned.

Edit:

Ich habe diese Version von CBPI3 installiert "https://github.com/jpgimenez/craftbeerpi3".

Leider kennt man sich mit den ganzen Forks und Python3 umsetzungen nicht mehr aus. In den md Files stehn dann wieder Links zum originalen cbpi3 welches auf Python 2.7 basiert.

Ich hoffe, ich habe das richtige cbpi3 installiert.
Hatte auch mal eines von Brewchef installiert und da war wieder einiges mit python 2.7 in den Pip Meldungen.

Edit2 : Ich habe vergessen zu sagen, dass cbpi3 bei mir in einen venv läuft. Vielleicht fehlt da noch was.

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 12. April 2021, 15:31
von Innuendo
Dem Script sollte es mit der print Anweisung egal sein, ob es auf Python 2.7 oder 3.x läuft. Exceptions werden bei Versionskonflikten beim import module geworfen. Es gibt viele User mit dem genannten Fork. Einige haben hier berichtet, dass die MQTT Module nochmals installiert werden mussten. Insbesondere das paho.mqtt war bei einigen zickig - siehe weiter oben. Dein venv kenne ich aber gar nicht. Wenn Du ganz sicher kein anderes MQTT Plugin im Verzeichnis hast (auch das original mqtt plugin nicht!), dann habe ich keinen guten Tipp. Gffs. mal die ppy Datei löschen und reboot oder die print Zeile auskommentieren.

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 12. April 2021, 15:35
von chrs1978
Ich habe es jeztz zum Laufen gebracht, indem ich die zwei print Zeilen verändert habe :

Zeile 110 print("payload " + msg.payload)
Zeile 121 print (e)

Mein Plugins Ordner war komplett leer. Ich hatte nur das MQTT Plugin von hier im Ordner. Aber mit dem ändern der zwei Zeilen, läuft es. Der ESP schaltet das Relais.

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 12. April 2021, 17:23
von skybandit
chrs1978 hat geschrieben: Montag 12. April 2021, 15:35 Ich habe es jeztz zum Laufen gebracht, indem ich die zwei print Zeilen verändert habe :

Zeile 110 print("payload " + msg.payload)
Zeile 121 print (e)

Mein Plugins Ordner war komplett leer. Ich hatte nur das MQTT Plugin von hier im Ordner. Aber mit dem ändern der zwei Zeilen, läuft es. Der ESP schaltet das Relais.
So hab ich das auch mit dem CBPi3 BrewChef Fork auf einem Raspian Strech von 08.04.2019 machen müssen, damit es funktioniert.
Das Paho Problem hatt ich nur mit neueren linux versionen.
Bei mir wurde während der Installation von flask_socketio ein Fehler bei der dafür notwendigen bidict installation bidict>=0.21.0 geschmissen. Das deutet auf ein Phyton Versionsproblem hin, was ich aber nicht lösen konnte. Das Device läuft aber trotzdem auf dem cbpi3.. zumindest habe ich damit am Samstag gebraut, ohne das es ersthafte Software-Probleme gab...

Von meinem allerersten Katastrophensud direkt mit IDS2 und CBPi3 werde ich mal in Ruhe im anderen Fred berichten..

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 12. April 2021, 17:46
von chrs1978
Mit flask_socketio hatte ich auch Probleme. Ich weiß aber nicht mehr, was ich dann erst nachinstalliert habe. Ich glaube, es war python3-dev. Aber bin mir nicht mehr sicher. Python3-dev hat aber definitiv irgendwo gefehlt.
Das MQTT-Plugin konnte ich easy abändern, weil Python3 eine Lösung im CraftbeerPi gezeigt hat :-)

Wenn ich damit das erste Mal braue, werde ich eine Überbrückung der Automatik vorbereiten, damit ich den Sud manuell fertig bekomme, falls was buggt.

Re: MQTTDevice Version 2 & Platine

Verfasst: Montag 12. April 2021, 23:57
von chrs1978
Mittlerweile habe ich Onewire auch auf dem PI in Gang gesetzt. So eine Dämliche Anleitung, die das mit 5V macht, hat mir den GPIO4 gekillt. Aber GPIO 10 geht jetzt.
Aber zurück zum MQTT_Device. Durch die Code Anpassungen funktioniert es jetzt soweit, dass ich das Relais schalten kann. Aber die Temperatur kommt nicht im CBPI3 an. Topics passen und Dictionary auch "Sensor.Value". Mosquitto_Sub zeigt mir, dass die Sensordaten per MQTT verfügbar sind.
Nur will cbpi die nicht anzeigen.

Re: MQTTDevice Version 2 & Platine

Verfasst: Dienstag 13. April 2021, 06:29
von Innuendo
Bitte mal mit MQTTExplorer oder ähnlichem Tool alle Topics subscriben (#). Wenn hier alles ankommt, ist noch ein Fehler in Deinem System vorhanden.

Re: MQTTDevice Version 2 & Platine

Verfasst: Dienstag 13. April 2021, 09:49
von chrs1978
Unbenannt.png
Unbenannt2.png
Per MQTT kommen die Sensordaten an. Das Relais funktioniert.

Irgendwo wird noch eine exeption geworfen. Ich vermute, wenn CBPI die Temperatur vom Kocher senden will.
Aber mir geht es erstmal um das Topic "Wasser"

Nicht über die Namen und Topics wundern. Das ganze liegt noch lose hier auf dem Tisch und wird nur getestet :-)

Re: MQTTDevice Version 2 & Platine

Verfasst: Dienstag 13. April 2021, 13:13
von Innuendo
Wenn in der Verarbeitung der JSON Pakete aus dem MQTT Protokoll in CBPi3 Exceptions geworfen werden, liegt die Vermutung nahe, dass in Deinem System weiterhin Abhängigkeiten fehlen bzw. erforderliche Module sind nicht vorhanden. Damit würde ich nicht arbeiten! Bei Deinem System weiß ich leider keine Hilfe.

Re: MQTTDevice Version 2 & Platine

Verfasst: Dienstag 13. April 2021, 14:44
von chrs1978
Ja, irgendwas ist da faul. Ich habe zudem bemerkt, dass man PidBoil auch nicht installieren kann. Es verweist auf ein totes git.

Ich werde dieses Setup löschen und ein anderes Git Repo verwenden und dann nochmal testen.
Die ESPs werde ich zwar eh nicht verwenden, das habe ich eigentich schon wieder über den Haufen geworfen. Aber PidBoil ist schon ziemlich wichtig. Werde dann mal das Brewchef git probieren.

Re: MQTTDevice Version 2 & Platine

Verfasst: Mittwoch 14. April 2021, 15:25
von Innuendo
Bzgl. der print Anweisung schu bitte mal hier: https://hobbybrauer.de/forum/viewtopic. ... 56#p424556

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 17:23
von klauslilie
Hallo, ich habe mal ne ganz blöde Frage...

Mein MQTTDevice funzt hervorragend :thumbsup
Aber ich habe noch irgendwie die Winterzeit im Display :Waa
01.jpg
01.jpg (32.77 KiB) 4892 mal betrachtet
Was mache ich falsch bzw. wie kann ich die Zeit ändern?
Auf dem Raspi und in der CBPI 3.0 stimmt die Zeit :Grübel

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 17:35
von skybandit
Du solltest sicherstellen das Du die neueste Firmware installiert hast, da war ein Fix genau dafür integriert.
Innuendo hat geschrieben: Donnerstag 8. April 2021, 12:04 Version 2.52 liegt auf github

- Fixed: MQTT Topic IDS2 wurde nicht angezeigt (Tippfehler)
- Fixed: Display Update Intervall wurde fehlerhaft angezeigt (Zahlendreher)
- Fixed: Sommerzeit wurde nicht geprüft (die letzte Optimierung hat die Überprüfung Sommerzeit wegoptimiert)

Danke für die Hinweise. Das Update kann ab Version 2.5x per WebUpdate eingespielt werden.
Innu

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 17:56
von Innuendo
Beim Update bitte beachten, dass 2.2x oder älter NICHT per Webupdate aktualisiert werden können.

Habe heute eine neue SD für den RasberryPi geliefert bekommen. Ein ganz frisches OS ist aufgespielt. Werde Pyth3 mit CBPi3 und CBPi4 testen.

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 18:14
von skybandit
Innuendo hat geschrieben: Donnerstag 15. April 2021, 17:56 Habe heute eine neue SD für den RasberryPi geliefert bekommen. Ein ganz frisches OS ist aufgespielt. Werde Pyth3 mit CBPi3 und CBPi4 testen.
Das ist spannend, kommt als nächsten dann vielleicht ein MQTT Device Plugin für das CBPi4 von Dir? :Smile

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 18:49
von mrhyde
skybandit hat geschrieben: Donnerstag 15. April 2021, 18:14
Das ist spannend, kommt als nächsten dann vielleicht ein MQTT Device Plugin für das CBPi4 von Dir? :Smile
Ich kenne mich mit MQTT nicht so aus. Aber hat Manuel nicht bereits einen 'native' MQTT support für CBPIv4 integriert?

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 19:17
von skybandit
Bei meinem letzten Versuch war es leider noch nicht funktional.

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 19:18
von Innuendo
mrhyde hat geschrieben: Donnerstag 15. April 2021, 18:49 Ich kenne mich mit MQTT nicht so aus. Aber hat Manuel nicht bereits einen 'native' MQTT support für CBPIv4 integriert?
Ja, auf facebook habe ich vor einiger Zeit ein Posting von Manuel zum Thema MQTT gesehen. Den aktuellen Status kenne ich nicht. Aber damit sollte das MQTTDevice2 bereits funktionieren. Für die Anbindung an Grafana fehlen Informationen, wie bspw. Ziel Temperatur oder aktueller Power Level. Das wird vermutlich nicht soo viel Aufwand sein.

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 19:57
von mrhyde
Innuendo hat geschrieben: Donnerstag 15. April 2021, 19:18
Ja, auf facebook habe ich vor einiger Zeit ein Posting von Manuel zum Thema MQTT gesehen. Den aktuellen Status kenne ich nicht. Aber damit sollte das MQTTDevice2 bereits funktionieren. Für die Anbindung an Grafana fehlen Informationen, wie bspw. Ziel Temperatur oder aktueller Power Level. Das wird vermutlich nicht soo viel Aufwand sein.
ok,

power hat er aktuell noch nicht integriert. Aber die Zieltemperatur zu integrieren ist kein Prolbem. Das haben ich bereits in einigen meiner Plugins mit integriert. Wenn das Device aber das Power Level selber regelt und nur eine Info benötigt, dann sollte das auch funktionieren.

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 20:06
von Innuendo
Ne, es ist wie beim TCPServer nur eine Info für eine Visualisierung.
Dein CBPi3 fork funktioniert auf Anhieb auf einem aktuellen Buster (pyth3). Ist Dein Fork für BM eingeschränkt?

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 20:19
von mrhyde
Innuendo hat geschrieben: Donnerstag 15. April 2021, 20:06 Ne, es ist wie beim TCPServer nur eine Info für eine Visualisierung.
Dein CBPi3 fork funktioniert auf Anhieb auf einem aktuellen Buster (pyth3). Ist Dein Fork für BM eingeschränkt?
Nur die Rezepterstellung ist etwas auf den Braumeister mit meinen Step Plugin fokussiert. (beerxml und kbh).

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 20:53
von chrs1978
Ich habe jetzt auch das cbpi3 von MrHyde getestet. Auch dieses läuft problemlos in einem Venv. Aber auch hier bekomme ich keine Sensordaten über MQTT. (Habe es einfach Interessehalber mal dort auch probiert)

Im Log taucht dieser Fehler auf "can only concatenate str (not "bytes") to str" Dieser ist direkt auf das MQTT Plugin zurückzuführen und nur auf die Sensor Class im Code. Ich habe die einfach mal auskommentiert, dann war der Fehler weg.

Der Zweite Fehler "ERROR - Exception mqtt_pub: 'topic'" Hängt mit den letzten Zeilen im MQTT Plugin zusammen und ist weg, wenn ich diesen Teil auskommentiere.

Habe das nur mal gemacht um zu sehen, wo die Probleme entstehen. Leider sind meine Python Kenntnisse zu gering um das rauszufinden. Vorallem wenn ein str zu bytes Fehler auftaucht :-D

Die Print Errors kommen daher, weil Python3 das nicht mehr so haben will, wie es in Python2 funktioniert. Python3 will das in Klammer serviert bekommen.

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 21:21
von mrhyde
chrs1978 hat geschrieben: Donnerstag 15. April 2021, 20:53
Im Log taucht dieser Fehler auf "can only concatenate str (not "bytes") to str" Dieser ist direkt auf das MQTT Plugin zurückzuführen und nur auf die Sensor Class im Code. Ich habe die einfach mal auskommentiert, dann war der Fehler weg.
Wird beim Fehler auch eine Zeile angegeben oder ein teil des codes?

Man muss zum teil .encode() bzw. .decode() am Ende einiger Variablen anhängen. Irgendwo versucht der Code strings zusammenzufügen, erhält aber mit python3 jetzt bytes.

Das waren eigentlich die wesentlichen Änderungen, die in den Plugins vorgenommen werdne musste, damit sie unter python3 laufen.

Gruß,
Alex

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 21:28
von Innuendo
Mit Pyth3 gibt es weiterhin Problemchen mit dem Modul paho-mqtt
Bitte probiere mal folgendes:

Code: Alles auswählen

cd /usr/lib/python3/dist-packages
sudo ln -s /home/pi/.local/lib/python2.7/site-packages/paho
Anschließend den cbpi service neu starten (oder reboot). Mit dem Link habe ich bei den Aktoren und Sensoren den Typ MQTT.
Edit: Bitte Pfad oder User entsprechend anpassen, wenn es kein RaspberryPi ist.

Edit: typo korrigiert - lib/python2.7/site-

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 21:29
von chrs1978
Leider nicht. Mehr als diese Meldung taucht nicht im log auf. Ich konnte es nur auf die Sensor Class einschränken.

Da ich das im Venv laufen habe, wird das keine Auswirkungen haben.
Aber, im Venv ist in dem Pfad paho-mqtt vorhanden.

Code: Alles auswählen

pi@raspberrypi:~/craftbeerpi3/py3/lib/python3.7/site-packages/paho $ ls
__init__.py  mqtt  __pycache__
pi@raspberrypi:~/craftbeerpi3/py3/lib/python3.7/site-packages/paho $

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 21:33
von mrhyde
Auch die json.dumps können ein Problem verursachen.

Ich musste dahinter beim iSPindle TCP server immer noch ein .encode('utf-8') anhängen, als ich auf python3 bin

Beilspiel von iSpindle TCP Server Script:

Code: Alles auswählen

out = json.dumps(outdata).encode('utf-8')
Es könnte auch mit .encode() gehen.

Aber cbpi4 ist nicht mehr so weit in der Ferne. Also würde ich keinen großen Aufwand da reinstecken.

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 21:36
von chrs1978
Ich Vermute, dass einige Python3 Umsetzungen nicht komplett auf Python3 laufen. Der Brewchef Branch z.B. zieht immernoch Python2.7 Dinge heran.
Deswegen bekomme ich das im Venv nicht zum laufen. Der Fork von MrHyde hingegen ist komplett auf Python3 und läuft im Venv.

Venv deswgen, um die Differenzen rauszubekommen und Python2.7 loszuwerden.

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 21:38
von chrs1978
mrhyde hat geschrieben: Donnerstag 15. April 2021, 21:33 Auch die json.dumps können ein Problem verursachen.

Ich musste dahinter beim iSPindle TCP server immer noch ein .encode('utf-8') anhängen, als ich auf python3 bin

Beilspiel von iSpindle TCP Server Script:

Code: Alles auswählen

out = json.dumps(outdata).encode('utf-8')
Es könnte auch mit .encode() gehen.

Aber cbpi4 ist nicht mehr so weit in der Ferne. Also würde ich keinen großen Aufwand da reinstecken.
Klar, soviel braucht man da nimmer dran machen. Aber vllt hilft es bei der Migration zu V4, wenn man gleich mal sieht, wo es hakt. Nicht dass man sich in V4 wieder mit Python2 rumschlagen muss :Bigsmile

Re: MQTTDevice Version 2 & Platine

Verfasst: Donnerstag 15. April 2021, 21:41
von Innuendo
Also der Fork von mrhyde, der Link für paho nach usr und die Korrektur für die print Anweisung funktionieren. Die Fehlermeldung no module namend paho ist weg. Ich habe noch vom alten Raspian Strech (python 2.7) die craftbeerpi.db und die Plugins auf das System neue Buster kopiert und alle Settings (Kettles, Actors, Sensor, Steps) sind da.