Raumgerät Light für UDP-Verbindung mit BSB-LAN Adapter

Begonnen von fabulous, 26 April 2020, 12:50:53

Vorheriges Thema - Nächstes Thema

fabulous

Moin,

anbei eine überarbeitete Version.

Die BSB_lan...-Dateien müssen mit auf den BSB-LAN-Adapter geflasht werden. Ausserdem muss RGLU_types.h mit dazu.

Alle RGLU...-Dateien werden für das Raumgerät benötigt.

Die wichtigste Datei ist "RGLU_def.h"; hiermit können die einzelnen Konfigurationen ausgewählt ("RG_CONF") werden oder neue selbst definiert werden.
Derzeit sind drei Konfigurationen hinterlegt:
- 0: Arduino Uno mit Ethernet Shield, 20x4 LCD und Präsenztaste
- 1: Arduino Uno mit Ethernet Shield und 16x2 LCD
- 2: NodeMCU v2 mit 128x32 OLED (hierfür müssen SSID und pwd in "RGLU_pass.h" angepasst werden)

Die IP-Adressen bzw. die Netzwerk-Konfiguration ist ebenfalls anzupassen.

Die Funktion "TWW Push" ist nur teilweise implementiert und funktioniert daher noch nicht.
Der DHT22 Sensor ist noch nicht implementiert.

Für die Verwendung der Präsenztaste muss der entsprechende Parameter im BSB-lan schreibbar gesetzt werden.

Verwendung auf eigene Gefahr.

Gruß
Fabian

Schotty

Klasse, danke! Da ich selbst nur das 128x64er OLED liegen und auch keinen Zeitdruck habe, warte ich mit dem Testen noch, bis du die finale Version einstellst ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

fabulous

Moin,

mit welcher Konfiguration könntest du es testen?
Dann würde ich versuchen sie nachzubilden.

Ich habe noch ein Wemos D1; und beim OLED wäre es wichtig den Chipsatz zu kennen. Es gibt da wohl verschiedene.

Gruß
Fabian

Schotty

#33
Moin,

also zum Testen hätte ich folgende Komponenten da, was hierfür in Frage käme:

- Boards: NodeMCU, WemosD1, Uno+LAN (-> EDIT: Tüddelkram, den habe ich kürzlich gerade verbaut :( )
- Display: besagtes OLED 1306 (128x64) (das ist -glaube ich- sogar auch von az-delivery; auf der Packung steht SPI OLED 1306, laut www ists wohl der SSD1306 Standardtreiber - verwendet dein 128x32er den nicht auch?)
- Gedöns: Mini-Taster hätte ich auch da, u.a. auch noch nen DHT22 

Zeitlich ist's bei mir derzeit auch knapp, aber bei entspr. schlechtem Wetter lege ich gerne eine Bastelstunde ein ;)

Gruß
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

fabulous

Moin,

hätte zwei Fragen an dich  ;D

- Hast du den DHT22 schon mal auf einem ESP-Board zum Laufen gebracht? Offensichtlich ist in der DHT-Bibliothek ein Timingfehler mit dem Resultat, dass der Sensor nur NaN liefert. Auf den Arduino- Boards läuft es mit der gleichen Bibliothek problemlos.

- Wenn du dir eine Darstellung auf dem 128x64 Display aussuchen könntest, wie sähe sie aus? Mir fehlen irgendwie die Ideen, und ich habe einfach die LCD-Darstellung übernommen. Die Schrift ist damit allerdings viel zu klein. Ich überlege daher den Text gegen aussagekräftige Symbole zu tauschen und nur die Zahlen darzustellen, aber doppelt so groß.
Hast du irgendwelche Ideen oder Wünsche?

Gruß
Fabian

Schotty

Moin Fabian,

a) bzgl DHT22@ESP: Nein, habe ich noch nicht versucht. Ich habe den lediglich rumliegen, damit ich einen zum Testen für BSB-LAN-Setups habe. Da die Teile eh nicht so genau sein sollen und auch noch recht groß sind, habe ich mich damit nie weiter auseinander gesetzt.. :(
Ich frage mich nur gerade, ob das NaN-Problem evtl mit der 3.3V Spannungsversorgung zusammenhängt, da haben nämlich kürzlich bei mir DS18B20er an einem Wemos genau so rumgezickt (es kam nur NaN zurück).
(Btw: Hast du zufällig einen BME280 rumliegen? Die laufen 1a am ESP mit den 3.3V via I2C, sind kleiner und genauer. Müsste man aber dann im Gehäuse vermutlich eine kleine Bohrung vornehmen, wo der Sensor drinsitzen könnte, damit die Werte passen..) 

b) bzgl Darstellung: Hmm, das ist ne gute Frage.. Spontan würden mir entweder nur die gängigen Symbole (Sonne, Mond, Wasserhahn etc) und/oder Abkürzungen (AT = Außentemperatur etc) einfallen.
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Schotty

Bei den echten OneWire DS18B20 kann man die Versorgung mit 5V vornehmen und dann den PullUp zwischen DATA und einem 3.3V-Pin klemmen, somit kommt beim GPIO auch nur ein 3.3V Signal an. Soll angeblich beim DHT22 auch funktionieren, habe ich aber noch nie getestet. Kann ich gerne machen, wenns meinen ESP dann brutzelt, dann isses eben so. (Bisher waren meine ESPs auch recht 5V-kompatibel an den GPIOs, laut Datenblatt können sie das aber offiziell nicht, weshalb das also grundsätzlich nicht zu empfehlen ist..)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Schotty

..an einem zu kurzen Abfrageintervall des DHT22 wird's vermutlich nicht liegen, oder? Die sind wohl eher etwas 'lahm'.. Was hast du da für ein Intervall eingestellt?
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

fabulous

#38
Moin,

das Ausleseintervall sind 5s. Sollte also passen.
Ich habe mir aber jetzt auch einen BME280 bestellt. Ich möchte auf jeden Fall einen Sensor mit Feuchtigkeitsmessung, daher passen die DS nicht.

Das OLED läuft zusammen mit dem restlichen Code nicht auf dem Arduino aufgrund Speicherplatzmangels. Die Adafruit GFX Bibliothek verschlingt relativ viel Ressourcen. Vielleicht muss ich eine Alternative ausprobieren.

Ich habe auch eine Darstellung für das OLED gefunden mit der ich ganz zufrieden bin.

EDIT: ich habe einen 4.7kOhm Pull up verwendet. Leider habe ich kein Oszi um der Sache auf den Grund zu gehen.

Gruß
Fabian

Schotty

Moin,

das sieht doch gut aus! Rechts der Wasserhahn und die Flamme symbolisieren dann den Zustand, ob gerade TWW bereitet wird und/oder ob der Brenner an ist?

Bzgl PullUp:
Falls du das auf mein Geschreibsel bezogen hattest: Bitte beachte, dass ich von Versorgung mit 5V und dann PullUp zwischen DATA und einem 3.3V-Pin sprach! Also beim ESP dann nicht den PullUp zwischen 5V und DATA! Aber wie gesagt - angeblich soll das mit nem DHT22 funktionieren, getestet habe ich es noch nicht.
BME280 ist auf jeden Fall ne gute Wahl.

Bzgl Speicherplatz:
Hmm.. Es gibt für die OLEDs eine 'kleine' speicherplatzoptimierte Version: SSD1306Ascii (ArduinoIDE -> Werkzeuge -> Bibliotheken verwalten), aber das ist text-only, da wirst du wohl keine Wasserhähne finden :( - aber wäre ja evtl eine Option, wenn du Abkürzungen o.ä. nimmst?
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

fabulous

Moin,

anbei die neueste Version v0.07.

- das LCD ist rausgeflogen
- OLEDs 128x64 sowohl mit SSD1306 als auch mit SH1106 werden unterstützt
- ich verwende das 1,3 Zoll OLED. Es passt ziemlich gut in eine TAE-Dosenabdeckung. Siehe Fotos.
- TWW Push Button implementiert
- ist ein Sensor angeschlossen, werden die Sensorwerte statt RT_soll und RT_ist angezeigt.

Gruß
Fabian

-cr

#41
Danke für die Lösungsvorlage zu meiner ersten IoT-Implementierung, Fabian!
Auch wenn von Deinem Kode nur noch winzige Fragmente (und ein Icon) übrig geblieben sind, hat es mir doch sehr geholfen.

Mein Anliegen war: Protokollierung der jüngsten Aktivitäten unserer Heizung und Anzeige aller für mich interessanter Temperaturen auf einen Blick - ohne FHEM-Server oder so, nur mit BSB-LAN im Brennergehäuse im Keller und einer schlanken Anzeige-Einheit im Hausflur.

Nachgerüstet habe ich dann gleich noch:
- Möglichkeit, den Anzeigeinhalt per HTTP abzurufen
- Präsenzdarstellung für ausgewählte Computer (ok, eher Handys=Personen :) im Netz

Ein Beispiel für die Darstellung (im Zeitraffer) auf dem SSD1306 am ESP32 sowie den Quellkode füge ich unten an, falls es jemanden interessiert.
(Das Beispiel beinhaltet keine Präsenzdarstellung. Die würde mit einer Pixelzeile je Computer unten eingefügt, und die oberen Grafiken würden entsprechend verkleinert werden.)

Grüße,
Christian

P.S. Für die aktuelle Version nicht das *.zip hier nutzen sondern https://github.com/DE-cr/BSBmonCR :)

fabulous

Freut mich, dass ich helfen konnte.

Ich mag die Wassertropfen ... :-)