HTTP Actor / Sensor für CBPi Projektvorstellung

Antworten
Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

HTTP Actor / Sensor für CBPi Projektvorstellung

#1

Beitrag von matschie » Freitag 12. Oktober 2018, 10:37

Hallo liebe Braufreunde,

ich habe mein aktuelles Projekt fast fertig gestellt und möchte es hier einmal vorstellen.
Mich interessiert vor allem, ob ihr daran Interesse habt, dann könnte ich es ausführlich dokumentieren, oder ob ihr noch Anregungen habt was zu implementieren wäre.

Zunächst einmal möchte ich mich bei JollyJumper bedanken, der mich a) auf die Idee gebracht hat und mir b) mit der Zusendung seines Arduino Sketches auch den Grundstein gelegt hat. Nun ist das Projekt allerdings "etwas" weiter ausgeufert als ich geplant hatte, aber seht selbst:

Basis (Hardware): Ein Wemos D1 Mini, DS18B20 Sensoren, und eine einfache Relaiskarte, hier mein Test-Setup (mit Bildschirm, der aber eigentlich nicht gebraucht wird)
IMG_0102.jpg
Die Idee: Ein Webserver einrichten, über den der Sensor / Actor eingerichtet werden kann, ohne den Arduino Code modifizieren zu müssen.

Das Ergebnis:

Beim ersten Start wird ein AP eingerichtet, in dem man das WiFi, sowie den CBPi Host konfigurieren kann:
Bildschirmfoto 2018-10-12 um 10.20.18.png
Bildschirmfoto 2018-10-12 um 10.20.43.png
Ist das erledigt, verbindet sich der MC mit dem WLan und startet einen Server. Mit dem Browser kommt man wie beim CBPi auf die Oberfläche, welche die eingerichteten Sensoren und deren Wert, sowie die Aktoren und deren Status darstellt:
Bildschirmfoto 2018-10-12 um 10.21.29.png
Bildschirmfoto 2018-10-12 um 10.22.06.png
Hier gibt es auch die Varianten "Edit" und "Add", mit welchen Aktoren (bis zur Anzahl der verfügbaren Pins, also maximal 5 bzw. 7 wenn man auf das Display verzichtet) oder Sensoren (Eigentlich egal wie viele, ich hab sie derzeit auf 10 beschränkt) bearbeitet und hinzufügt werden können.
Bildschirmfoto 2018-10-12 um 10.22.34.png


Der Sensor bedient das HTTPSensor Plugin von CBPi, in dem die (auf der Oberfläche dargestellte) URL /sensor1/value angewählt wird. Das Klappt auch sehr zuverlässig.

Andersherum kann das HTTPActor Plugin den Controller steuern, indem die gesetzten Werte (ebenfalls dargestellt) angewählt werden. also z.B. 192.168.178.101/actors?D0=ON
Es können auch mehrere gleichzeitig geschaltet werden, z.b. mit /actors?D0=ON&D5=ON oder mit /actors?D0=ON&D5=OFF, ich nutze das z.B. um Phase und Neutralleiter gleichzeitig zu schalten.

Die Config-Informationen werden im internen Speicher in einer json-Datei abgelegt, sodass diese nach einem Neustart nicht neu eingerichtet werden müssen. Die WLAN Infos bleiben selbstverständlich ebenfalls gespeichert, jedoch nicht in der JSON-Datei sondern im EEPROM, sodass diese nicht im klartext ausgelesen werden können.

Ich bin gespannt was ihr davon haltet!
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

irrwisch
Posting Klettermax
Posting Klettermax
Beiträge: 201
Registriert: Sonntag 21. Januar 2018, 08:33

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#2

Beitrag von irrwisch » Freitag 12. Oktober 2018, 13:08

Das ist ganz ähnlich wie das was ich grad bastel.
Wollte auch erst einen Wemos D1 Mini nehmen hab mich dann aber aufgrund eines anderen Threads hier entschieden gleich eine Sonoff TH16 Funksteckdose zu nehmen.
Da steckt auch ein ESP8266 drin den man flashen kann
http://tinkerman.cat/sonoff-th10-th16-s ... actuators/

Kostet grad mal 8,75 EUR aus China. Nicht viel mehr als ein Wemos D1 Mini und man hat ne 5V und 3.3V Versorgung, nen Relais, usw.. gleich mit drauf.

Noch dazu hat der TH16 einen Stecker rausgeführt für Sensoren (hab einen DS18B20 angeschlossen) und noch einen weiteren GPIO Port. An den hab ich ein weiteres Relais gehängt zum heizen des Kühlschrankes via Terrariumheizkabel (hab genau so ein Relais Board wie du oben).

Allerdings hab ich schon eine fix und fertige Firmware auf das Teil geflasht die secuspec in einem anderen Thread empfohlen hatte:
https://github.com/arendst/Sonoff-Tasmota
https://hobbybrauer.de/forum/viewtopic. ... ta#p295308

Die Firmware ist sehr flexibel und kann alles was man so braucht. Unterstüzt direkt diverse Sensoren, ist sehr flexibel was die Konfiguration angeht ( an welchem Port was dran hängt, Relais, LEDs, Tasten, ...). Die Tasmota Firmware unterstützt auch den Wemos D1 Mini.

Benutzeravatar
JollyJumper
Posting Freak
Posting Freak
Beiträge: 576
Registriert: Dienstag 10. November 2015, 19:01
Wohnort: 35764 Sinn

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#3

Beitrag von JollyJumper » Freitag 12. Oktober 2018, 18:13

Sehr schön, Glückwunsch.
Kannst du mir deinen fertigen Code zur Verfügung stellen?
Grüße aus Sinn,

Matthias

Benutzeravatar
JollyJumper
Posting Freak
Posting Freak
Beiträge: 576
Registriert: Dienstag 10. November 2015, 19:01
Wohnort: 35764 Sinn

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#4

Beitrag von JollyJumper » Freitag 12. Oktober 2018, 18:15

Mir fällt immo nix mehr ein, was da noch reingehört.
Es denkt schon viel ab. Hast du eine Routine für
WLAN Verlust eingefügt?
Grüße aus Sinn,

Matthias

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#5

Beitrag von matschie » Freitag 12. Oktober 2018, 20:17

ja, wlan Status wird laufend geprüft.

Ich stelle die Software gerne zur Verfügung, möchte allerdings erst abwarten ob sie stabil läuft, wenigstens ein paar Tage.
Wenn du sie dir nur aus Interesse anschauen willst, kann ich sie dir gerne vorab als pm schicken!
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

Benutzeravatar
JollyJumper
Posting Freak
Posting Freak
Beiträge: 576
Registriert: Dienstag 10. November 2015, 19:01
Wohnort: 35764 Sinn

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#6

Beitrag von JollyJumper » Freitag 12. Oktober 2018, 22:09

Hat Zeit, teste erst mal schön durch.
Grüße aus Sinn,

Matthias

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#7

Beitrag von matschie » Montag 15. Oktober 2018, 19:29

Hallo Matthias,

hab den Sketch mal angehängt. Nach dem Flashen musst du auch über den "Sketch Data Uploader" die Daten aus dem "data"-Verzeichnis rüberkopieren.

Da ich ein anderes Display habe, nehme ich an, dass es mit deinem nicht klappt, sofern das nicht ein SD1306 über i2c Bus ist - musst du mal testen. Ansonsten sollte die Software aber auch ohne Display gut funktionieren, musst dann nur irgendwie die IP rausfinden :Wink

In der actors.json musst du übrigens nichts ändern, das geht von alleine während der Konfiguration.
Zuletzt geändert von matschie am Donnerstag 18. Oktober 2018, 16:37, insgesamt 1-mal geändert.
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#8

Beitrag von matschie » Montag 15. Oktober 2018, 19:31

Ach ja, hab gerade gesehen: Man kann die Sensoren noch nicht über das WebInterface konfigurieren, das müsstest du dann doch über die actors.json machen..
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#9

Beitrag von matschie » Montag 15. Oktober 2018, 22:27

Ich habe gerade noch einen kleinen aber nicht unwichtigen Fehler gefunden, der beim Ändern eines Actor-PINS auftritt. Außerdem gab es plötzlich eine Menge Compile-Errors, auch das ist behoben.

jetzt sollte es besser laufen.




Edit: Nicht aktuelle Version gelöscht.
Zuletzt geändert von matschie am Donnerstag 18. Oktober 2018, 16:37, insgesamt 1-mal geändert.
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

Benutzeravatar
JollyJumper
Posting Freak
Posting Freak
Beiträge: 576
Registriert: Dienstag 10. November 2015, 19:01
Wohnort: 35764 Sinn

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#10

Beitrag von JollyJumper » Dienstag 16. Oktober 2018, 06:57

Wie gesagt lass dir Zeit.
Grüße aus Sinn,

Matthias

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#11

Beitrag von matschie » Dienstag 16. Oktober 2018, 09:13

JollyJumper hat geschrieben:
Dienstag 16. Oktober 2018, 06:57
Wie gesagt lass dir Zeit.
Ja, bei mir lief es jetzt mehrere Tage problemlos, daher hatte ich die Testphase für beendet erklärt.

Der Fehler trat erst auf, wenn man etwas ändern wollte.
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#12

Beitrag von matschie » Donnerstag 18. Oktober 2018, 16:36

Habe fertig. :Smile

Würde mich freuen, wenn es jemand testen möchte und ggf. Rückmeldung gibt.
Dateianhänge
181018_HTTPActSens.zip
(70.36 KiB) 6-mal heruntergeladen
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#13

Beitrag von matschie » Freitag 9. November 2018, 09:59

irrwisch hat geschrieben:
Freitag 12. Oktober 2018, 13:08
Das ist ganz ähnlich wie das was ich grad bastel.
Wollte auch erst einen Wemos D1 Mini nehmen hab mich dann aber aufgrund eines anderen Threads hier entschieden gleich eine Sonoff TH16 Funksteckdose zu nehmen.
Da steckt auch ein ESP8266 drin den man flashen kann
http://tinkerman.cat/sonoff-th10-th16-s ... actuators/

Kostet grad mal 8,75 EUR aus China. Nicht viel mehr als ein Wemos D1 Mini und man hat ne 5V und 3.3V Versorgung, nen Relais, usw.. gleich mit drauf.

Noch dazu hat der TH16 einen Stecker rausgeführt für Sensoren (hab einen DS18B20 angeschlossen) und noch einen weiteren GPIO Port. An den hab ich ein weiteres Relais gehängt zum heizen des Kühlschrankes via Terrariumheizkabel (hab genau so ein Relais Board wie du oben).

Allerdings hab ich schon eine fix und fertige Firmware auf das Teil geflasht die secuspec in einem anderen Thread empfohlen hatte:
https://github.com/arendst/Sonoff-Tasmota
https://hobbybrauer.de/forum/viewtopic. ... ta#p295308

Die Firmware ist sehr flexibel und kann alles was man so braucht. Unterstüzt direkt diverse Sensoren, ist sehr flexibel was die Konfiguration angeht ( an welchem Port was dran hängt, Relais, LEDs, Tasten, ...). Die Tasmota Firmware unterstützt auch den Wemos D1 Mini.
Ich habe mir das mal angesehen, das TH16 war mir dann aber zu unflexibel, bzw. möchte ich gerne meine Web-Aktoren in Zukunft etwas ausbauen. Außerdem bastel ich zu gerne selber :Bigsmile

Mir schwebt z.B. vor, dass der CBPi in Zukunft "irgendwo" steht und keine eigenen (Hardware-)Sensoren/Aktoren mehr hat, sondern alles nur mit verteilten kleinen Boxen übers WLAN macht. Z.B. meine Induktionssteuerung, welche dann nur über MQTT den Power-%-Wert bekommt. Das ganze wäre dann nämlich beliebig skalierbar. Außerdem stehen die Fermenter sowieso schon so weit auseinander, dass ich es für die eh brauche.

Was ich davon aber mitgenommen habe: Ich habe jetzt das ganze Ding auf MQTT umgestellt - ist viiel besser / stabiler.
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

MQTTActor Compressor Delay

#14

Beitrag von matschie » Freitag 9. November 2018, 10:02

Übrigens habe ich mir ein Compressor Delay Plugin für CBPi geschrieben, nach Art des HTTPActor Compressor Delays. Falls es jemanden interessiert...
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

irrwisch
Posting Klettermax
Posting Klettermax
Beiträge: 201
Registriert: Sonntag 21. Januar 2018, 08:33

Re: MQTTActor Compressor Delay

#15

Beitrag von irrwisch » Freitag 9. November 2018, 10:16

matschie hat geschrieben:
Freitag 9. November 2018, 10:02
Übrigens habe ich mir ein Compressor Delay Plugin für CBPi geschrieben, nach Art des HTTPActor Compressor Delays. Falls es jemanden interessiert...
Ja das interessiert mich sogar sehr!
Geht das Plugin zusammen mit einem MQTT Actor?

Am Wochenende will ich das erste mal meine neue Brau- und Gärsteuerung einweihen. :Wink
Welche Kontrolllogik benutzt du für deinen Kühlschrank? Die ganz normale Hysterese?

PS: Habe an meinen TH16 sogar noch ein kleines I2C OLED Display angedübelt um die aktuelle Temperatur anzuzeigen. Die beiden Pins der seriellen Schnittstelle zum flashen das Teils kann man nämlich auch noch als normale GPIOs missbrauchen :thumbsup (Debugging über seriell geht dann halt net mehr)
In Summe hat man damit am TH16 4 GPIOs frei die man nutzen kann wie man will. In meinem Fall 1wire Sensor, ein extra Relais und I2C Display (2 Pins) :thumbsup

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

Re: MQTTActor Compressor Delay

#16

Beitrag von matschie » Freitag 9. November 2018, 11:08

irrwisch hat geschrieben:
Freitag 9. November 2018, 10:16
matschie hat geschrieben:
Freitag 9. November 2018, 10:02
Übrigens habe ich mir ein Compressor Delay Plugin für CBPi geschrieben, nach Art des HTTPActor Compressor Delays. Falls es jemanden interessiert...
Ja das interessiert mich sogar sehr!
Geht das Plugin zusammen mit einem MQTT Actor?
Ja, genau genommen gibt es einen neuen Aktortyp, statt "MQTT Actor" eben "MQTT Actor Compressor". Rest ist gleich, nur dass man den Kompressor Delay einstellen kann.

Datei ist im Anhang. Das Plugin ersetzt das normale MQTT Plugin, du musst das normale also vorher löschen!
Dateianhänge
cbpi-mqtt-master.zip
(4.09 KiB) 4-mal heruntergeladen
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

irrwisch
Posting Klettermax
Posting Klettermax
Beiträge: 201
Registriert: Sonntag 21. Januar 2018, 08:33

Re: HTTP Actor / Sensor für CBPi Projektvorstellung

#17

Beitrag von irrwisch » Freitag 9. November 2018, 11:16

Sehr cool, danke!

Benutzeravatar
matschie
Posting Senior
Posting Senior
Beiträge: 330
Registriert: Samstag 17. März 2018, 17:26

Update: HTTP Actor / Sensor für CBPi Projektvorstellung

#18

Beitrag von matschie » Samstag 15. Dezember 2018, 12:48

Heute melde ich mich mal Wieder bei diesem Projekt zurück, da ich ein paar Fortschritte gemacht habe.

Erstmal: Warum mache ich das ganze?

Bei mir sind Brauort, Lagerkühlschrank etc. weit voneinander entfernt. Ich bräuchte also überall einen eigenen CBPi zum Steuern. Das möchte ich umgehen damit ich alle Infos Zentral habe. Also kommen per WLan angebundene Geräte zum Einsatz. Soweit nix neues.

Aber: Zum Brauen müsste ich den CBPi dann mit zum Brauort nehmen, dafür ausstecken, einstecken, alles wieder aktivieren. Auch das möchte ich umgehen, ebenso wie einen eigenen CBPi zum Brauen. Also hab ich mich für die Folgende Lösung entschieden:

Ein Zentraler CBPi (in meinem Fall auf einer virtuellen Maschine auf meinem NAS), der die Übersicht darstellt und alles steuert.

Für jeden Ort bzw. jedes Gerät ein "MQTT Device" welches über WLAN per MQTT mit dem CBPi kommuniziert.

Dafür habe ich jetzt zwei Dinge:
1) ein neues MQTT Plugin für CBPi, welches neben "on" und "off" auch Compressor Delay kann und Power-% überträgt
2) ein auf dem ESP8266 basierenden Arduino Sketch, welcher universell einsetzbar ist.

Einrichtung siehe oben über die von der iSpindel bekannte Oberfläche (Hier noch ein altes Bild):
Bild

Anschließend kann das Gerät über die Weboberfläche konfiguriert werden:

"Jungfräulich"
Bildschirmfoto 2018-12-15 um 12.38.01.png
Aktor einrichten
Bildschirmfoto 2018-12-15 um 12.38.25.png
Induktion einrichten
Bildschirmfoto 2018-12-15 um 12.38.35.png
Sensoren einrichten
Bildschirmfoto 2018-12-15 um 12.39.09.png
Übersicht im Betrieb
Das "ERR" steht da, weil der betreffende Sensor nicht eingesteckt ist. In dem Fall wird auch nichts per MQTT gesendet, sodass einundderselbe Sensor mit einunddemselben MQTT Topic auf verschiedenen Devices konfiguriert werden kann. Sobald er in einem davon steckt, wird er bei CBPi korrekt aktualisiert.
Bildschirmfoto 2018-12-15 um 12.39.28.png
Funktionen
  • Sensoren
    • Nach OneWire Adressen suchen
    • Wert 1x je Sekunde lesen und an den MQTT Host (CBPi) schicken
  • Aktoren
    • Beliebigen PIN aussuchen
    • Genutzte PINs werden ausgeblendet
    • Invertiert für Relais / SSR
    • Prozentuale Funktion: Bei Werten zwischen 0 und 100 % wird automatisch mit einem Duty Cycle von 1000ms "gepulst". So muss das An/Aus nicht jedes mal vom CBPi kommen
  • Induktion
    • Steuerung des GGM Kochfelds über Serielle Schnittstelle
    • Beliebige PINs aussuchen
    • Dauer des Lüfternachlaufs
Geplante Funktionen
  • Aktoren
    • "Sicherheit-Sensor": Bei einem Sensor außerhalb eines bestimmtem Wertebereichs abschalten
  • Induktion
    • Stand-Alone-Funktion
GGM Induktionskochfeld via Serielle Schnittstelle über CBPi per Serielle Kommunikation oder drahtlos über MQTT angesteuert: Link
Vorstellung meiner Anlage: Klick
GitHub: https://github.com/matschie1

Antworten