HTTP Actor / Sensor für CBPi Projektvorstellung
HTTP Actor / Sensor für CBPi Projektvorstellung
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) 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: 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: 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.
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!
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) 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: 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: 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.
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!
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
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.
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.
- JollyJumper
- Posting Freak
- Beiträge: 664
- Registriert: Dienstag 10. November 2015, 19:01
- Wohnort: 35764 Sinn
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Sehr schön, Glückwunsch.
Kannst du mir deinen fertigen Code zur Verfügung stellen?
Kannst du mir deinen fertigen Code zur Verfügung stellen?
Grüße aus Sinn,
Matthias
Matthias
- JollyJumper
- Posting Freak
- Beiträge: 664
- Registriert: Dienstag 10. November 2015, 19:01
- Wohnort: 35764 Sinn
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
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?
Es denkt schon viel ab. Hast du eine Routine für
WLAN Verlust eingefügt?
Grüße aus Sinn,
Matthias
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
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!
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!
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
- JollyJumper
- Posting Freak
- Beiträge: 664
- Registriert: Dienstag 10. November 2015, 19:01
- Wohnort: 35764 Sinn
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Hat Zeit, teste erst mal schön durch.
Grüße aus Sinn,
Matthias
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
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
In der actors.json musst du übrigens nichts ändern, das geht von alleine während der Konfiguration.
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
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.
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
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..
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
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.
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.
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
- JollyJumper
- Posting Freak
- Beiträge: 664
- Registriert: Dienstag 10. November 2015, 19:01
- Wohnort: 35764 Sinn
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Wie gesagt lass dir Zeit.
Grüße aus Sinn,
Matthias
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
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.
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Habe fertig.
Würde mich freuen, wenn es jemand testen möchte und ggf. Rückmeldung gibt.
Würde mich freuen, wenn es jemand testen möchte und ggf. Rückmeldung gibt.
- Dateianhänge
-
- 181018_HTTPActSens.zip
- (70.36 KiB) 117-mal heruntergeladen
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
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 selberirrwisch 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.
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.
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
MQTTActor Compressor Delay
Übrigens habe ich mir ein Compressor Delay Plugin für CBPi geschrieben, nach Art des HTTPActor Compressor Delays. Falls es jemanden interessiert...
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: MQTTActor Compressor Delay
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.
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 (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)
Re: MQTTActor Compressor Delay
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) 108-mal heruntergeladen
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Sehr cool, danke!
Update: HTTP Actor / Sensor für CBPi Projektvorstellung
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):
Anschließend kann das Gerät über die Weboberfläche konfiguriert werden:
"Jungfräulich" Aktor einrichten Induktion einrichten Sensoren einrichten Ü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. Funktionen
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):
Anschließend kann das Gerät über die Weboberfläche konfiguriert werden:
"Jungfräulich" Aktor einrichten Induktion einrichten Sensoren einrichten Ü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. 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
- Aktoren
- "Sicherheit-Sensor": Bei einem Sensor außerhalb eines bestimmtem Wertebereichs abschalten
- Induktion
- Stand-Alone-Funktion
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
-
- Posting Junior
- Beiträge: 79
- Registriert: Sonntag 22. Oktober 2017, 13:51
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Grüß dich,
ich bin gerade zu blöd deinen sketch auf meinen ESP zum laufen zu bringen.
Versucht habe ich ihn per Arduino Software auf dem ESP zu laden, was nicht ging.
Kann mir wer Hilfestellung geben?
Gruß und vielen Dank
Thomas
ich bin gerade zu blöd deinen sketch auf meinen ESP zum laufen zu bringen.
Versucht habe ich ihn per Arduino Software auf dem ESP zu laden, was nicht ging.
Kann mir wer Hilfestellung geben?
Gruß und vielen Dank
Thomas
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Welches Board hast Du ausgewählt?
-
- Posting Junior
- Beiträge: 79
- Registriert: Sonntag 22. Oktober 2017, 13:51
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Moin,
Habe einen Esp8266
Habe einen Esp8266
HOWTO: Erste Installation
Moin! Da ich in letzter Zeit einige Anfragen bekommen habe, habe ich mal ein kleines HOWTO geschrieben.
1 Vorbereitungen
1.1 Arduino IDE vorbereiten
Zunächst muss die Arduino Entwicklungsumgebung vorbereitet werden. Dazu geht man am besten wie hier beschrieben vor. (Für Mac beschrieben, funktioniert unter Windows im Prinzip genauso, nur dass ggf. noch ein Treiber für den "USB-to-Serial"-Baustein CH340/CH341 installiert werden muss.
1.2 Boardeinstellungen
Ein Bild sagt mehr als tausend Worte: 1.3 ESP Sketch Data Uploader Installieren
Für die Weboberfläche müssen wir noch die HTML-Daten in den Flash-Speicher des ESP8266 übertragen. Dazu dient der "ESP Sketch Data Uploader"
Hier herunterladen: https://github.com/esp8266/arduino-esp8266fs-plugin
Dort steht auch eine Anleitung zur Installation, hier nochmal die wichtigsten Punkte:
Für dir ordnungsgemäße Funktion sind einige Libraries notwendig. Diese können wir über Werkzeuge->Bibliotheken verwalten installieren.
Folgende werden benötigt, dabei bitte auf die Versionsnummer achten. Einige funktionieren in neueren Versionen nicht mehr!
2.1 Projekt vorbereiten
Jetzt beginnt der eigentliche Upload. Zunächst aus Github die aktuelle Version des MQTT Device herunterladen und entdecken. Der Ordner heisst dann "MQTTDevice-master", das müssen wir umbenennen in "MQTTDevice".
Dann im Ordner die Datei "MQTTDevice.ino" mit der Arduino IDE öffnen. Dann öffnet sich die Datei mit mehreren Tabs wie Folgt: 2.2 Einstellungen
2.3 Sketch Hochladen
Jetzt kommt die Stunde der Wahrheit. Über den kleinen Pfeil oben links lassen wir den Sketch kompilieren und auf das Board laden: Das sollte dann wie Folgt aussehen (Ich habe den Konsolenbereich mal größer gezogen): 2.4 Sketch Data Hochladen
Nun wählen wir unter Werkzeuge > "ESP8266 Sketch Data Upload" aus. Damit werden automatisch alle Daten im Ordner "data" auf das Board hochgeladen. Das sollte dann so aussehen (Habe den Konsolenbereich erneut größer gezogen):
Wenn es fehl schlägt, kontrolliert bitte ob ihr noch den Serial Monitor aufhabt. Der verhindert den Upload.
Optional: 2.5 Überprüfen
Jetzt können wir, wenn wir wollen, unter Werkzeuge > Serieller Monitor auswählen, auf 115200 Bauds einstellen. Da der ESP im Gegensatz Zum Arduino nicht neu gestartet wird bei Starten des seriellen Monitors drücken wir noch einmal kurz den Reset-Knopf am ESP.
Dann sollte da Folgendes so oder so ähnlich stehen: Das bedeutet, dass der Server bereitsteht zur Konfiguration unter 192.168.4.1
3 Konfiguration
3.1 WiFi
Wir nehmen uns ein WiFi-Fähiges Gerät (Ich nehme jetzt mal mein Handy, da mein PC kein WiFi hat) und verbinden uns mit dem neuen WLAN "MQTTDevice". Damit verbinden wir uns: Anschließend öffnet sich automatisch eine Seite, hier wählen wir "Configure WiFi" aus. Wenn sich die Seite nicht öffnet, geht ihr im Webbrowser auf "192.168.4.1". Dort wählen wir dann unser WLAN aus, geben die SSID ein und unten wo die IP steht gebt ihr die IP eures CBPi ein: Wenn ihr den Serial Monitor aufhabt, solltet ihr dann so etwas sehen: Rot eingekreist seht ihr die IP Adresse, die das Gerät zugewiesen bekommen hat.
3.2 Sensoren / Aktoren
Jetzt geht ihr in einem Webbrowser auf diese IP, dann seht ihr so eine Oberfläche: Unter "Sensors" findet ihr den Button "Add". Klickt ihr drauf, öffnet sich ein Fenster, in dem ihr aus den Verfügbaren OneWire Adressen auswählen könnt. Der Name ist nur der Anzeigenname in der Weboberfläche. Das mqtt_topic benötigt ihr für CBPi.
Da mein Test-ESP keine angeschlossenen Sensoren oder Aktoren hat, mache ich jetzt mit einem anderen, laufenden und bereits konfigurierten Gerät weiter.
Beispielsensor: Beispielactor: 3.3 CraftBeerPi
Unter CraftBeerPi nutzen wir das Plugin "MQTTPlugin", allerdings nicht die unter "Addons" Verfügbare Version, sondern meinen Fork: Github.
Dieser hat zwei wesentliche Unterschiede: Einmal gibt es hier einen "MQTT Compressor" welcher einen Delay erlaubt. Außerdem unterstützt der normale MQTT Actor die Übertragung der Power in %. Dieses muss auch genutzt werden, da das MQTTDevice sonst nicht funktioniert, da es einen Power Wert erwartet (Auch wenn der bei 100% steht).
Wie CBPi Plugins installiert werden, sollte denke ich klar sein.
Unter CraftBeerPi legen wir dann entsprechende Sensoren und Autoren an. Hier an unseren Beispielen.
Beispielsensor: Beispielactor: Beim Actor ist wichtig, ausschließlich MQTTActor und MQTTActor_Compressor zu nutzen. Nicht EasyMQTT! Der ist nur noch drin, da ich den Fork möglichst wenig verändern wollte, der funktioniert mit dem MQTTDevice nicht.
Anschließend können wir den Status prüfen, da auf der Weboberfläche des MQTTDevice immer der aktuelle Status angezeigt wird: 4 Induktionskochfeld
Die Steuerung des Induktionskochfelds bekommt einen eigenen Abschnitt, obwohl es im Prinzip auch "nur" ein Actor ist. Unter "Edit" könnt ihr die Einstellungen vornehmen: Das "Delay after off" Regelt, wie lange das Kochfeld noch nachläuft. Die Lüfter laufen ca. 1 Minute nach, ich schalte nach 2 Minuten (120000ms) das Relais ab.
Bei weiteren Fragen könnt ihr mich gerne ansprechen. Ich freue mich sehr, wenn meine Lösung auch anderen hilft!
1 Vorbereitungen
1.1 Arduino IDE vorbereiten
Zunächst muss die Arduino Entwicklungsumgebung vorbereitet werden. Dazu geht man am besten wie hier beschrieben vor. (Für Mac beschrieben, funktioniert unter Windows im Prinzip genauso, nur dass ggf. noch ein Treiber für den "USB-to-Serial"-Baustein CH340/CH341 installiert werden muss.
1.2 Boardeinstellungen
Ein Bild sagt mehr als tausend Worte: 1.3 ESP Sketch Data Uploader Installieren
Für die Weboberfläche müssen wir noch die HTML-Daten in den Flash-Speicher des ESP8266 übertragen. Dazu dient der "ESP Sketch Data Uploader"
Hier herunterladen: https://github.com/esp8266/arduino-esp8266fs-plugin
Dort steht auch eine Anleitung zur Installation, hier nochmal die wichtigsten Punkte:
1.4 Libraries Installieren
- Das Archiv von der GitHub-Seite herunterladen
- Wenn es im Arduino Sketchbook Ordner (Findet man in der Arduino IDE Unter Datei > Einstellungen > Sketchbook Speicherort) noch keinen Ordner "tools" gibt, diesen erstellen.
- Das Archiv im "tools" Ordner entpacken (Der Pfad sieht etwa so aus: <sketchbook directory>/tools/ESP8266FS/tool/esp8266fs.jar)
- Arduino IDE neu starten
Für dir ordnungsgemäße Funktion sind einige Libraries notwendig. Diese können wir über Werkzeuge->Bibliotheken verwalten installieren.
Folgende werden benötigt, dabei bitte auf die Versionsnummer achten. Einige funktionieren in neueren Versionen nicht mehr!
- OneWire (by Jim Studt..) version 2.3.4
- DallasTemperature (by Miles Burton...) version 3.8.0
- PubSubClient (by Nick O''Leary) version 2.6.0
- ArduinoJson (by Benoit Bianchon) version 5.13.4
- WiFiManager (by tzapu) version 0.14.0
2.1 Projekt vorbereiten
Jetzt beginnt der eigentliche Upload. Zunächst aus Github die aktuelle Version des MQTT Device herunterladen und entdecken. Der Ordner heisst dann "MQTTDevice-master", das müssen wir umbenennen in "MQTTDevice".
Dann im Ordner die Datei "MQTTDevice.ino" mit der Arduino IDE öffnen. Dann öffnet sich die Datei mit mehreren Tabs wie Folgt: 2.2 Einstellungen
- Unter Werkzeuge > Erase Flash wählen wir "All Flash Contents" aus (Nur beim ersten mal!)
- Unter Port wählen wir den "usbserial" aus (heisst vermutlich leicht anders)
2.3 Sketch Hochladen
Jetzt kommt die Stunde der Wahrheit. Über den kleinen Pfeil oben links lassen wir den Sketch kompilieren und auf das Board laden: Das sollte dann wie Folgt aussehen (Ich habe den Konsolenbereich mal größer gezogen): 2.4 Sketch Data Hochladen
Nun wählen wir unter Werkzeuge > "ESP8266 Sketch Data Upload" aus. Damit werden automatisch alle Daten im Ordner "data" auf das Board hochgeladen. Das sollte dann so aussehen (Habe den Konsolenbereich erneut größer gezogen):
Wenn es fehl schlägt, kontrolliert bitte ob ihr noch den Serial Monitor aufhabt. Der verhindert den Upload.
Optional: 2.5 Überprüfen
Jetzt können wir, wenn wir wollen, unter Werkzeuge > Serieller Monitor auswählen, auf 115200 Bauds einstellen. Da der ESP im Gegensatz Zum Arduino nicht neu gestartet wird bei Starten des seriellen Monitors drücken wir noch einmal kurz den Reset-Knopf am ESP.
Dann sollte da Folgendes so oder so ähnlich stehen: Das bedeutet, dass der Server bereitsteht zur Konfiguration unter 192.168.4.1
3 Konfiguration
3.1 WiFi
Wir nehmen uns ein WiFi-Fähiges Gerät (Ich nehme jetzt mal mein Handy, da mein PC kein WiFi hat) und verbinden uns mit dem neuen WLAN "MQTTDevice". Damit verbinden wir uns: Anschließend öffnet sich automatisch eine Seite, hier wählen wir "Configure WiFi" aus. Wenn sich die Seite nicht öffnet, geht ihr im Webbrowser auf "192.168.4.1". Dort wählen wir dann unser WLAN aus, geben die SSID ein und unten wo die IP steht gebt ihr die IP eures CBPi ein: Wenn ihr den Serial Monitor aufhabt, solltet ihr dann so etwas sehen: Rot eingekreist seht ihr die IP Adresse, die das Gerät zugewiesen bekommen hat.
3.2 Sensoren / Aktoren
Jetzt geht ihr in einem Webbrowser auf diese IP, dann seht ihr so eine Oberfläche: Unter "Sensors" findet ihr den Button "Add". Klickt ihr drauf, öffnet sich ein Fenster, in dem ihr aus den Verfügbaren OneWire Adressen auswählen könnt. Der Name ist nur der Anzeigenname in der Weboberfläche. Das mqtt_topic benötigt ihr für CBPi.
Da mein Test-ESP keine angeschlossenen Sensoren oder Aktoren hat, mache ich jetzt mit einem anderen, laufenden und bereits konfigurierten Gerät weiter.
Beispielsensor: Beispielactor: 3.3 CraftBeerPi
Unter CraftBeerPi nutzen wir das Plugin "MQTTPlugin", allerdings nicht die unter "Addons" Verfügbare Version, sondern meinen Fork: Github.
Dieser hat zwei wesentliche Unterschiede: Einmal gibt es hier einen "MQTT Compressor" welcher einen Delay erlaubt. Außerdem unterstützt der normale MQTT Actor die Übertragung der Power in %. Dieses muss auch genutzt werden, da das MQTTDevice sonst nicht funktioniert, da es einen Power Wert erwartet (Auch wenn der bei 100% steht).
Wie CBPi Plugins installiert werden, sollte denke ich klar sein.
Unter CraftBeerPi legen wir dann entsprechende Sensoren und Autoren an. Hier an unseren Beispielen.
Beispielsensor: Beispielactor: Beim Actor ist wichtig, ausschließlich MQTTActor und MQTTActor_Compressor zu nutzen. Nicht EasyMQTT! Der ist nur noch drin, da ich den Fork möglichst wenig verändern wollte, der funktioniert mit dem MQTTDevice nicht.
Anschließend können wir den Status prüfen, da auf der Weboberfläche des MQTTDevice immer der aktuelle Status angezeigt wird: 4 Induktionskochfeld
Die Steuerung des Induktionskochfelds bekommt einen eigenen Abschnitt, obwohl es im Prinzip auch "nur" ein Actor ist. Unter "Edit" könnt ihr die Einstellungen vornehmen: Das "Delay after off" Regelt, wie lange das Kochfeld noch nachläuft. Die Lüfter laufen ca. 1 Minute nach, ich schalte nach 2 Minuten (120000ms) das Relais ab.
Bei weiteren Fragen könnt ihr mich gerne ansprechen. Ich freue mich sehr, wenn meine Lösung auch anderen hilft!
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Vielen Dank für das Howto,
ich bleibe am Punkt 3.2 hängen
connected with XXXX, channel 6
dhcp client start...
ip:192.168.100.31,mask:255.255.255.0,gw:192.168.100.1
*WM: Connection result:
*WM: 3
*WM: IP Address:
*WM: 192.168.100.31
pm open,type:2 0
Es öffnet sich das Web Interface nicht
Auf den AP 192.168.4.1 kann ich fehlerfrei verbinden und SSID, Pass und IP CBPi eintragen.
Ping auf die IP funktioniert. Im WLAN wird das Gerät angezeigt. Ich habe die Schritte mehrfach bis 3.2 wiederholt. Ein Fehler gab es nicht. Vom Smartphone erhalte ich irgendwann Zeitüberschreitung. Fehlt in Deinem Howto ein Port? In der web.ino habe ich keinen gefunden. Oder gibt es eine Möglichkeit den http Server über Konsole ein restart zu geben?
Innu
ich bleibe am Punkt 3.2 hängen
connected with XXXX, channel 6
dhcp client start...
ip:192.168.100.31,mask:255.255.255.0,gw:192.168.100.1
*WM: Connection result:
*WM: 3
*WM: IP Address:
*WM: 192.168.100.31
pm open,type:2 0
Es öffnet sich das Web Interface nicht
Auf den AP 192.168.4.1 kann ich fehlerfrei verbinden und SSID, Pass und IP CBPi eintragen.
Ping auf die IP funktioniert. Im WLAN wird das Gerät angezeigt. Ich habe die Schritte mehrfach bis 3.2 wiederholt. Ein Fehler gab es nicht. Vom Smartphone erhalte ich irgendwann Zeitüberschreitung. Fehlt in Deinem Howto ein Port? In der web.ino habe ich keinen gefunden. Oder gibt es eine Möglichkeit den http Server über Konsole ein restart zu geben?
Innu
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Das heißt, wenn du bei dem aktuellen Stand abgekommen bist und im Webbrowser auf 192.168.100.31 gehst, Passiert nix? Auch nicht im Serial Monitor?
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Die bleibt immer gleich auch nach einem Reset so wie oben gepostet.
Im Webbrowser erhalte ich keine Antwort vom http server. Ein Portscan auf 192.168.100.31 zeigt mir keinen offenen 80connected with XXXX, channel 6
dhcp client start...
ip:192.168.100.31,mask:255.255.255.0,gw:192.168.100.1
*WM: Connection result:
*WM: 3
*WM: IP Address:
*WM: 192.168.100.31
pm open,type:2 0
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Hmm.. das klingt danach, dass er den SPIFFS nicht öffnen kann.
Um das zu prüfen könntest du mal in Tab 6_WEB an Folgender Stelle (Zeile 7):
Folgendes ändern / Einfügen:
Wobei dann weiter vorn, direkt beim Start, schon eine Fehlermeldung "SPIFFS Mount failed" ausgegeben werden sollte.
In dem Fall prüf mal bitte deine Upload-Einstellungen (Flash Size) und ob der Sketch Data Upload problemlos läuft.
Ansonsten poste mal bitte den kompletten Text des Serial Monitors (natürlich ohne SSIDs).
VG
Um das zu prüfen könntest du mal in Tab 6_WEB an Folgender Stelle (Zeile 7):
Code: Alles auswählen
if(loadFromSpiffs(server.uri())) { return; }
Code: Alles auswählen
if(loadFromSpiffs(server.uri())) { Serial.println("could not load from spiffs"); return; }
In dem Fall prüf mal bitte deine Upload-Einstellungen (Flash Size) und ob der Sketch Data Upload problemlos läuft.
Ansonsten poste mal bitte den kompletten Text des Serial Monitors (natürlich ohne SSIDs).
VG
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Ich habe die Zeile angepasst, kompiliert und übertragen. Hier die Ausgabe Konsole ab Reset 2.5:
Hier die Ausgabe IDE:
Ich habe das Modul von AZDelivery D1 Mini NodeMCU PDF. Danach müsste der Speicher 4M (3M SPIFFS) sein. Habe es mit 4M (1M SPIFFS) mal getestet: gleiches Ergebnis. Die Einstellungen unter Werkzeuge sind identisch mit dem im howto
Innu
Edit:
libs zum xten Mal überprüft: so wie oben von Dir angegeben. Boardverwalter esp 8266 Version 2.4.2 installiert
Bitte nicht über die Änderung IP und Subnet wundern. Hab das Modul mit ins Büro genommenscandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
opened config file
Number of Sensors loaded: 0
*WM: Adding parameter
*WM: host
*WM:
*WM: AutoConnect
*WM: Connecting as wifi client...
*WM: Using last saved values, should be faster
state:state: 3 -> 5 (10)
add 0
aid 1
cnt
3 -> 0 (0)
rm 0
scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 1
cnt
connected with xyz, channel 11
dhcp client start...
ip:172.22.100.8,mask:255.255.0.0,gw:172.22.254.254
*WM: Connection result:
*WM: 3
*WM: IP Address:
*WM: 172.22.100.8
pm open,type:2 0
Hier die Ausgabe IDE:
Es erscheint SPIFFS Image Uploaded. Keine Fehlermeldung.Der Sketch verwendet 356248 Bytes (34%) des Programmspeicherplatzes. Das Maximum sind 1044464 Bytes.
Globale Variablen verwenden 35168 Bytes (42%) des dynamischen Speichers, 46752 Bytes für lokale Variablen verbleiben. Das Maximum sind 81920 Bytes.
Uploading 360400 bytes from C:\Users\PN010~1.TEA\AppData\Local\Temp\arduino_build_975462/MQTTDevice.ino.bin to flash at 0x00000000
................................................................................ [ 22% ]
...
................................ [ 100% ]
[SPIFFS] data : \\team.intern\public\Users\PN010\Documents\Arduino\MQTTDevice\data
[SPIFFS] size : 3052
[SPIFFS] page : 256
[SPIFFS] block : 8192
/bootstrap.dark.css
/index.html
/styleguide.html
/theme.css
/theme.scss
skipping .DS_Store
[SPIFFS] upload : C:\Users\PN010~1.TEA\AppData\Local\Temp\arduino_build_975462/MQTTDevice.spiffs.bin
[SPIFFS] address: 0x100000
[SPIFFS] reset : nodemcu
[SPIFFS] port : COM5
[SPIFFS] speed : 921600
Uploading 3125248 bytes from C:\Users\PN010~1.TEA\AppData\Local\Temp\arduino_build_975462/MQTTDevice.spiffs.bin to flash at 0x00100000
................................................................................ [ 2% ]
...
............ [ 100% ]
Ich habe das Modul von AZDelivery D1 Mini NodeMCU PDF. Danach müsste der Speicher 4M (3M SPIFFS) sein. Habe es mit 4M (1M SPIFFS) mal getestet: gleiches Ergebnis. Die Einstellungen unter Werkzeuge sind identisch mit dem im howto
Innu
Edit:
libs zum xten Mal überprüft: so wie oben von Dir angegeben. Boardverwalter esp 8266 Version 2.4.2 installiert
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Hmm, das sieht alles richtig aus.
Das Board ist auch das gleiche, das ich nutze, Einstellungen sehen gut aus.
Ich habe gerade nochmal ein frisches Board geflasht, Ausgaben sind gut, Größen sind auch gleich. Bei mir funktioniert alles.
Idee:
Hast du einen aktiven MQTT Server? Es ist möglich, dass das Board in einer Schleife festhängt, in der es versucht mit dem MQTT Server zu verbinden. Da müsste ich dann nochmal ne "Sicherungsleine" einbauen.
Probier mal in der 1_LOOP, Zeilen 6 und 7 auszukommentieren.
Und schau, ob du dann auf die Oberfläche kommst.
Das Board ist auch das gleiche, das ich nutze, Einstellungen sehen gut aus.
Ich habe gerade nochmal ein frisches Board geflasht, Ausgaben sind gut, Größen sind auch gleich. Bei mir funktioniert alles.
Idee:
Hast du einen aktiven MQTT Server? Es ist möglich, dass das Board in einer Schleife festhängt, in der es versucht mit dem MQTT Server zu verbinden. Da müsste ich dann nochmal ne "Sicherungsleine" einbauen.
Probier mal in der 1_LOOP, Zeilen 6 und 7 auszukommentieren.
Code: Alles auswählen
// if (!client.connected()) { mqttreconnect(); }
// client.loop();
Und schau, ob du dann auf die Oberfläche kommst.
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Yeah!
Ich bekomme index.html angezeigt
Ich bekomme index.html angezeigt
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Die Ausgaben im seriellen Monitor sind übrigens identisch. Einen MQTT Server habe ich nicht.
Vielen Dank für Deine tolle und super schnelle Unterstützung! Soll ich jetzt erst einmal warten und dein gihub beobachten oder kann ich später daheim ohne client.loop mein Test mit dem Induktionsfeld fortführen?
Innu
Vielen Dank für Deine tolle und super schnelle Unterstützung! Soll ich jetzt erst einmal warten und dein gihub beobachten oder kann ich später daheim ohne client.loop mein Test mit dem Induktionsfeld fortführen?
Innu
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Das Induktionskochfeld wird so (ohne MQTT) nicht funktionieren.
Du solltest, wenn du zu Hause bist, zuerst auf dem CBPi den MQTT Server und das entsprechende Plugin installieren (https://github.com/matschie1/cbpi-mqttCompressor). Auf der Seite findest du auch die Anleitungen. Alles ab "MQTT Test Client" kannst du getrost vergessen.
Als Tip: Bei mir funktioniert
nur als root, also
Er gibt zwar keinen Fehler aus, installiert das aber dann auch nicht richtig.
Mit dem Plugin in CBPi und aktivem Mosquitto dürfte das dann mit der IP des CBPi als MQTT Server erstmal normal funktionieren, du kannst die beiden Zeilen also wieder mit reinnehmen.
Ich werde wohl erst im nächsten Jahr dazu kommen, den Code zu überarbeiten und die "Sicherungsleine" einzubauen. Im Normalfall dürfte der MQTT Server ja auch erreichbar sein, so dass er gar nicht erst in der Schleife festhängt.
Du solltest, wenn du zu Hause bist, zuerst auf dem CBPi den MQTT Server und das entsprechende Plugin installieren (https://github.com/matschie1/cbpi-mqttCompressor). Auf der Seite findest du auch die Anleitungen. Alles ab "MQTT Test Client" kannst du getrost vergessen.
Als Tip: Bei mir funktioniert
Code: Alles auswählen
pip install paho-mqtt
Code: Alles auswählen
sudo pip install paho-mqtt
Mit dem Plugin in CBPi und aktivem Mosquitto dürfte das dann mit der IP des CBPi als MQTT Server erstmal normal funktionieren, du kannst die beiden Zeilen also wieder mit reinnehmen.
Ich werde wohl erst im nächsten Jahr dazu kommen, den Code zu überarbeiten und die "Sicherungsleine" einzubauen. Im Normalfall dürfte der MQTT Server ja auch erreichbar sein, so dass er gar nicht erst in der Schleife festhängt.
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Prima & Danke für die Tipps!
Ich werde gleich den MQTT Server einrichten. Wenn die Verbindung zum CBPi steht muss ich noch den Level Converter fertig machen.
Es ist bislang nur eine Testumgebung, ich kann also gerne testen und Nudeln kochen/warm halten. Der neue Braukessel liegt laut tracking in einem DPD Fahrzeug, aber der DPD Fahrer scheint sich verfahren zu haben.
Frage: mit Compressor bezeichnest Du den Lüfternachlauf im Plugin oder ist damit PWM durch das Plugin gemeint?
Ups, so war das gar nicht gemeint! Ich wollte nicht drängeln.
Ich werde gleich den MQTT Server einrichten. Wenn die Verbindung zum CBPi steht muss ich noch den Level Converter fertig machen.
Es ist bislang nur eine Testumgebung, ich kann also gerne testen und Nudeln kochen/warm halten. Der neue Braukessel liegt laut tracking in einem DPD Fahrzeug, aber der DPD Fahrer scheint sich verfahren zu haben.
Frage: mit Compressor bezeichnest Du den Lüfternachlauf im Plugin oder ist damit PWM durch das Plugin gemeint?
-
- Posting Junior
- Beiträge: 79
- Registriert: Sonntag 22. Oktober 2017, 13:51
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Grüß euch,
zu erst vielen Dank für das klasse HowTo.
Leider scheitere ich beim hochladen des Sketches.
hab mal zwei Screenshost der Fehlermeldung gemacht.
Hat wer eine Ahnung woran es liegt? Ich habe den NodeMCU Lua Amica V2 ESP8266 12E von AZ Delivery. Andere Sketche laufen, wobei auch dort am Ende die Fehlermeldung mit der ungültugen Bibliothek kommt.
Vielen Dank schon mal
Gruß
Thomas
zu erst vielen Dank für das klasse HowTo.
Leider scheitere ich beim hochladen des Sketches.
hab mal zwei Screenshost der Fehlermeldung gemacht.
Hat wer eine Ahnung woran es liegt? Ich habe den NodeMCU Lua Amica V2 ESP8266 12E von AZ Delivery. Andere Sketche laufen, wobei auch dort am Ende die Fehlermeldung mit der ungültugen Bibliothek kommt.
Vielen Dank schon mal
Gruß
Thomas
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
min nicht deklariert deutet auf fehlende/falsche libs oder fehlendes jar im tools hin. Schau mal oben in Post #27 in das PDF von AZ-Delivery. Hast Du in den Voreinstellungen die URL eingetragen und im Boardverwalter die esp geladen?
-
- Posting Junior
- Beiträge: 79
- Registriert: Sonntag 22. Oktober 2017, 13:51
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Danke für deine schnelle Antwort.
Ich habe gerade noch jede Menge libs runtergeladen. Werde den Boardverwalter mal updaten.
habe Probleme den sketch uploader zu installieren. Habe das in den Arduino/library Ordner abgelegt und entpackt aber es kommt immer die oben angehängte Fehlermeldung....
Eigentlich scheint es mir nicht so schwer zu sein, zum laufen bekomme ich es dennoch nicht
Ich habe gerade noch jede Menge libs runtergeladen. Werde den Boardverwalter mal updaten.
habe Probleme den sketch uploader zu installieren. Habe das in den Arduino/library Ordner abgelegt und entpackt aber es kommt immer die oben angehängte Fehlermeldung....
Eigentlich scheint es mir nicht so schwer zu sein, zum laufen bekomme ich es dennoch nicht
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Code: Alles auswählen
sudo pip install paho-mqtt
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Meinst Du das ESP8266FS-0.3.0.zip?CraftbeerBückeburg hat geschrieben: ↑Freitag 21. Dezember 2018, 17:36 Habe das in den Arduino/library Ordner abgelegt
das gehört in deinem Sketchpfad unter tools (bei mir Win10 unter <userpfad>\Documents\Arduino\tools\ESP8266FS\tool)
-
- Posting Junior
- Beiträge: 79
- Registriert: Sonntag 22. Oktober 2017, 13:51
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Da habe ich auch nur ne library aber keinen tool Ordner
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Der Actor schaltet noch nicht ...
Wenn ich am Device reset mache, höre ich vom Induktionsfeld das Relais. Was mich auch irritiert: muss das Device über USB mit Strom versorgt werden? Ohne USB ist keine Funktion und kein WebIf verfügbar. Ich hätte vermutet, das Device bekommt vom Kochfeld über rot 5V/schwarz Gnd
An LV/Gnd liegen nicht 3V sondern 4.8V an.
PIN D0 ist unbelegt?!? Meine Vermutung Kochfeld weiß ist nicht auswählbar.
Wenn ich am Device reset mache, höre ich vom Induktionsfeld das Relais. Was mich auch irritiert: muss das Device über USB mit Strom versorgt werden? Ohne USB ist keine Funktion und kein WebIf verfügbar. Ich hätte vermutet, das Device bekommt vom Kochfeld über rot 5V/schwarz Gnd
An LV/Gnd liegen nicht 3V sondern 4.8V an.
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Das habe ich überlesen/mistverstanden und am falschen Actor rumgeschaltetDie Steuerung des Induktionskochfelds bekommt einen eigenen Abschnitt, obwohl es im Prinzip auch "nur" ein Actor ist
Induktionsfled schaltet, Lüfter laufen nach - soweit perfekt! (USB angeschlossen)
@matschie: Welche Logic verwendest Du um die aktuelle Powerstufe (P0-P5) anzuzeigen?
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Hallo,
ich hoffe, ich erwische alle Fragen.
Der MQTTActor_Compressor ist für die Verwendung mit Kompressorkühlgeräten, wie bspw Kühlschränken, gedacht, da ein Kompressor nach dem Abschalten eine Weile (Default 10 Minuten) aus bleiben muss, da er sonst Schaden nehmen kann.
Für die Verwendung mit Heizstäben, Induktionskochfeld, Pumpe o.ä. solltest du den normalen "MQTTActor" wählen.
+5V (Rot) vom Kochfeld geht an den ESP an 5V, an HV und an Vcc des OneWire
GND (Schwarz) vom Kochfeld geht an ESP GND, an beide GND des Logic Converters und GND des OneWire
3.3V des ESP gehen an LV.
Funktioniert bei mir hervorragend.
ich hoffe, ich erwische alle Fragen.
Nein. Im CBPi kannst du beim Actor einrichten zwischen "MQTTActor" und "MQTTActor_Compressor" wählen.
Der MQTTActor_Compressor ist für die Verwendung mit Kompressorkühlgeräten, wie bspw Kühlschränken, gedacht, da ein Kompressor nach dem Abschalten eine Weile (Default 10 Minuten) aus bleiben muss, da er sonst Schaden nehmen kann.
Für die Verwendung mit Heizstäben, Induktionskochfeld, Pumpe o.ä. solltest du den normalen "MQTTActor" wählen.
Genau so ist es bei mir auch. Hier nochmal meine Verkabelung:Ich hätte vermutet, das Device bekommt vom Kochfeld über rot 5V/schwarz Gnd
An LV/Gnd liegen nicht 3V sondern 4.8V an.
+5V (Rot) vom Kochfeld geht an den ESP an 5V, an HV und an Vcc des OneWire
GND (Schwarz) vom Kochfeld geht an ESP GND, an beide GND des Logic Converters und GND des OneWire
3.3V des ESP gehen an LV.
Funktioniert bei mir hervorragend.
@matschie: Welche Logic verwendest Du um die aktuelle Powerstufe (P0-P5) anzuzeigen?
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Am besten gehst du das Howto nochmal durch, insbesondere Punkte 1.3 (Sketch Data Uploader installieren) und 1.4 (Auf korrekte Versionen der Libraries achten )CraftbeerBückeburg hat geschrieben: ↑Freitag 21. Dezember 2018, 20:01 Da habe ich auch nur ne library aber keinen tool Ordner
Die Fehler die du postest sehen mir sehr nach falschen Library Versionen aus.
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Jo, tut es auch.
Ich habe den Aufbau nochmal von vorne begonnen. Kaum macht man es richtig, funktioniert es auch
Bei mir mit Hysteresis ist die Anzeige noch mit 0-100%, im WebIf auf dem Device wird P1-5 angezeigt.@matschie: Welche Logic verwendest Du um die aktuelle Powerstufe (P0-P5) anzuzeigen?
Ganz großes Kino, was Du da herausgefunden und entwickelt hast!
- JollyJumper
- Posting Freak
- Beiträge: 664
- Registriert: Dienstag 10. November 2015, 19:01
- Wohnort: 35764 Sinn
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Hallo Matthias,
hab es nun auch endlich zum laufen gebracht.
Morgen werde ich mal einen Sensor und einen Actor konfigurieren und testen.
TOP ARBEIT!
Gruß Matthias
hab es nun auch endlich zum laufen gebracht.
Morgen werde ich mal einen Sensor und einen Actor konfigurieren und testen.
TOP ARBEIT!
Gruß Matthias
Grüße aus Sinn,
Matthias
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Freut mich dass es läuft und gefällt!JollyJumper hat geschrieben: ↑Samstag 29. Dezember 2018, 19:25 Hallo Matthias,
hab es nun auch endlich zum laufen gebracht.
Morgen werde ich mal einen Sensor und einen Actor konfigurieren und testen.
TOP ARBEIT!
Gruß Matthias
Powerstufe und CBPi funktioniert derzeit noch nicht. Das hatte ich in einer Entwicklungsversion und das hat es noch nicht in die finale Version geschafft.. das wird in der nächsten Version implementiert.
Dass CBPi die Power in % ausgibt ist also normal.
Freut mich aber, dass es auch dir gefällt.
Eine Frage noch: auf GitHub entwickelt schon jemand daran mit. Ist dieser jemand auch hier im Forum vertreten?
Vg
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Eine Frage zum Invertieren: die Funktion im Code verstehe ich, aber wann/wie wird das eingesetzt?
Was macht bspw. der Actor DLK an D0 (GPIO16) inverted GPIO in Deinem Beispiel?
Innu
Code: Alles auswählen
if (ainverted == "1")
{
isInverted = true;
ON = HIGH;
OFF = LOW;
}
if (ainverted == "0")
{
isInverted = false;
ON = LOW;
OFF = HIGH;
}
Innu
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Beim Erstellen oder Ändern einer Instanz der Klasse „actor“ werden für die jeweilige Instanz die Werte „ON“ und „OFF“ auf „HIGH“ oder „LOW“ gesetzt.
Während des Betriebs wird der Actor nicht mit digitalWrite(PIN, HIGH/LOW) sondern mit den jeweils definierten Werten digitalWrite(PIN,ON/OFF) geschaltet.
Die bool Variable isInverted ist nur für Statusabfragen da.
Während des Betriebs wird der Actor nicht mit digitalWrite(PIN, HIGH/LOW) sondern mit den jeweils definierten Werten digitalWrite(PIN,ON/OFF) geschaltet.
Die bool Variable isInverted ist nur für Statusabfragen da.
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
- JollyJumper
- Posting Freak
- Beiträge: 664
- Registriert: Dienstag 10. November 2015, 19:01
- Wohnort: 35764 Sinn
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
Hi,
müssen die DS18b20 an einem bestimmten Eingang angeschlossen sein?
müssen die DS18b20 an einem bestimmten Eingang angeschlossen sein?
Grüße aus Sinn,
Matthias
Matthias
Re: HTTP Actor / Sensor für CBPi Projektvorstellung
D3
Immer eine Handbreit Bier unterm.. äh, ne das ging anders.
Allzeit Gut Sud!
Matthias
Allzeit Gut Sud!
Matthias
- JollyJumper
- Posting Freak
- Beiträge: 664
- Registriert: Dienstag 10. November 2015, 19:01
- Wohnort: 35764 Sinn