Seite 4 von 5

Re: Node MCU plus DHT22

Verfasst: 9. Mai 2020 21:22
von udo1toni
Du hast Dein Item mit einer Konfiguration für mqtt1 angelegt. Du kannst natürlich mqtt1 nutzen, sogar parallel zu mqtt2. In Anbetracht der Tatsache, dass openHAB3 keine Typ1 Bindings mehr unterstützen wird, ist es aber bei neuen Projekten sinnvoll, gleich ausschließlich auf mqtt2 zu setzen.

Dafür musst Du mindestens eine Bridge zum Broker anlegen und mindestens ein Thing der Bridge zuordnen sowie unterhalb des Things für jeden Kanal einen Channel anlegen (ein Kanal ist z.B. ein Schaltkanal, eine Temperatur usw.)
Diese Channel kannst Du dann den passenden Items zuordnen.

Re: Node MCU plus DHT22

Verfasst: 10. Mai 2020 03:20
von peter-pan
udo1toni hat geschrieben: 9. Mai 2020 18:54 Wenn Du VSCode hast, kannst Du einfach PlatformIO als Plugin installieren.
Hallo Udo,
erst mal Danke für deinen Input. Ich habe auf meinem alten LapTop AtomIO mit PlatformIO installiert und dort habe ich damals (vor ca. 1 1/2 Jahren) meine Sonoffs geflasht. Das ging auch soweit ganz gut, nach meinem Verständnis haben die aber alle die gleiche Source, oder ? Und Mithilfe von Thom Dietrich und Opus habe ich es dann auch geschafft meine Sonoffs per OTA (Rule) zu updaten.

Die Regel sieht so aus:

Code: Alles auswählen

// Work with a list of selected Sonoff modules
//
val sonoff_device_ids = newArrayList(
//         "schaltdose03",
//         "pow_02",
         "schaltdose04"
)

// OR
// Work with the grouptopic, addressing ALL modules at once
// val sonoff_device_ids = newArrayList("sonoffs", "tasmotas")

// https://community.openhab.org/t/using-sonoff-power-switches-with-tasmota-firmware-and-openhab2-mqtt2-binding/59969/7  // thx to @opus
rule "Sonoff Maintenance"
  when
   Item Sonoff_Action received command
  then
//   logInfo("sonoff_maintenance", "Sonoff Maintenance on all devices: " + receivedCommand)
   val actionsBroker = getActions("mqtt","mqtt:broker:hans") // change to your broker name!
   for (String device_id : sonoff_device_ids) {
      switch (receivedCommand) {
         case "restart" : {
             actionsBroker.publishMQTT( "cmnd/" + device_id + "/restart", "1")
             logInfo("sonoff_maintenance", "Sonoff Maintenance: " + device_id + " / " + receivedCommand + " / " + sonoff_device_ids)
            }
         case "queryFW" : {
             actionsBroker.publishMQTT( "cmnd/" + device_id + "/status", "2")
             logInfo("sonoff_maintenance", "Sonoff Maintenance: " + device_id + " / " + receivedCommand + " / " + sonoff_device_ids)
            }
         case "upgrade" : {
             actionsBroker.publishMQTT( "cmnd/" + device_id +"/otaurl", "http://thehackbox.org/tasmota/release/tasmota-DE.bin")  // my modification, as for me this URL seems the better one -> tasmota 
             actionsBroker.publishMQTT( "cmnd/" + device_id + "/upgrade", "1")
             logInfo("sonoff_maintenance", "Sonoff Maintenance: " + device_id + " / " + receivedCommand + " / " + sonoff_device_ids)
            }
        }
    }
//   Sonoff_Action.postUpdate(NULL)
   createTimer(now.plusSeconds(5), [ |
    Sonoff_Action.postUpdate("OFF")
   ])
   
 end
Ich denke die Rule kennst du ja.

Da greife ich doch auf eine Standard-"bin" zu und die ist soweit ich weiss auf 1MB-Chips ausgelegt(naiv wie ich bin :oops: ).

Die Nodes (Amica, Lolin, Wemos) haben aber alle schon 4MB und es geht noch weiter mit den ESP32.

Ich hab mir dann mal über GitPod eine bin generieren lassen, bei der man auch ein paar Einstellungen, wie bei PlatformIO (user,pwd) einstellen kann und natürlich, dass es sich dabei um einen ESP8266/4MB handelt. Dort wird dann das "bin" kompiliert du kannst es dann downloaden. Das hab ich mit der Version 8.1 von Tasmota gemacht und wollte dann auf 8.2 per OTA-Rule umsteigen und bin leider auf die Nase gefallen. Das ging nicht.

Ich hab dann wieder bei GitPod eine neue Version kompiliert und meinen Amica geflasht. Ok das ist nicht schwer, da man keine Adapter, etc. braucht. Aber ich muss das Teil halt jedes mal an den PC holen um ihn zu flashen.
Der Unterschied zu meinen Sonoffs, den ich mehr oder weniger durch das Posten mit Joe mitbekommen habe, ist die Tatsache, dass ich in meinem JSON-String u.a. den Teilstring "Vcc" ermitteln kann. Ich hatte mir davor gar keine grosse Gedanken gemacht, sondern hab mich gefreut, dass ich das wieder hab. :)
Ok, vielleicht geht auch ein Update über eine lokale .bin-Datei, das habe ich noch nicht ausprobiert. Die müsste ich dann aber wahrscheinlich auch wieder kompilieren.
Oder meinst du das ein Update mit der Standard-bin gehen müsste (evtl. über Minimal) und er trotzdem nachher weiss, dass er ein NodeMCU, oder was auch immer, mit 4 MB ist und auch einen Teilstring "Vcc" hat ??!!

Vielleicht denke ich auch zu kompliziert und es ist alles viel einfacher.

Re: Node MCU plus DHT22

Verfasst: 10. Mai 2020 03:58
von peter-pan
Joe hat geschrieben: 9. Mai 2020 20:54z.B. den D3 GPIO0
Hallo Joe,
da bin ich jetzt total überfragt, aber da gibt es ein GPIO-Binding, leider auch nur in der 1-er Version. Aber so als Anfang:
switch.jpg
Da habe ich über die Einstellung "Switch1" einen PIR-Sensor drangehängt, das hab ich so in der Doku von Theo Arends gelesen, und das klappt auch ganz gut. Ich musste dann noch eine kleine Rule dazu schreiben, das war's dann. Aber ich glaube (oder weiss es inzwischen) man kann auch eine entsprechende Rule im Tasmota hinterlegen. Bei Bewegung schaltet der Sensor den Switch ON und nach einiger Zeit der "Nichtbewegung" wieder OFF. Ich denke aber schon, dass man damit Relais oder was auch immer schalten kann, da bin ich aber zu wenig technisch bewandert und bei Wechselstrom sehr zurückhaltend, um nicht zu sagen, da lass ich die Finger davon.
Aber wie du anhand des Screenshots sehen kannst, kannst du deine GPIOs ja mit verschiedenen Schaltern/Knöpfen verbinden. Aber da hast du ja schon selber dran rumgebastelt. Hast du schon mal auf der Tasmota-Seite geschaut ?

Aber wie Udo schon geschrieben hat, würde ich dir empfehlen auf MQTT2 umzusteigen, auch wenn das am Anfang evtl. etwas holperig geht.

Re: Node MCU plus DHT22

Verfasst: 10. Mai 2020 12:45
von udo1toni
Tasmota wird grundsätzlich immer als Version für 1MByte Speicher gebaut. Diese Version läuft auch auf den 4MByte Versionen, nur liegt dann halt der übrige Speicher brach.
Wenn Du eine 4MByte Version haben willst, musst Du die entsprechenden Flags setzen. Die Firmware läuft dann aber nur auf der 4MByte Version.
Vorteil der 4MByte Version ist aber sicherlich, dass immer zwei Versionen der Firmware in den Speicher passen und der Umweg über die Minimal Version entfällt.

GitPod ist ja letztlich auch nur eine Maschine, die das Kompilieren für Dich übernimmt. Das Problem bei solchen Diensten ist halt, dass Du die Kontrolle darüber verlierst. Damit meine ich nicht mal so sehr die Gefahr von bösem Code, der eingeschmuggelt wird, sondern vielleicht ist an irgendeiner Stelle ein Flag falsch gesetzt, so dass der Build einfach nicht mehr lauffähig ist (vielleicht sogar versionsabhängig), und Du hast einfach keine Möglichkeit, das zu fixen.
Eine Maschine zum Kompilieren kann man natürlich auch als VM zuhause laufen lassen, egal auf welchem Unterbau. Ist halt ein weiteres Feld, was man erlernen muss. Ich habe bisher noch nicht die Muße gehabt, mich damit auseinanderzusetzen. Aber denke an openHAB. Ein Change im Git Repository löst automatisch einen Build aus, die Artefakte werden automatisch deployed, und das Ganze läuft mehrstufig mit diversen Abhängigkeiten. Da haben mehrere Leute monatelang gebastelt, damit das läuft, und ab und zu muss doch jemand die betreffenden Serverprozesse neu starten.

Grundsätzlich sollte jedes Device, auf welchem Tasmota läuft, auch OTA können. Amica sagt mir jetzt nichts :) aber Du wirst mich sicher aufklären.

Vcc solltest Du mit StatusSTS bekommen. Früher gab es Status0 bis Status9, jetzt heißen die eben anders... https://tasmota.github.io/docs/JSON-Sta ... c-response Allerdings habe ich hier tatsächlich noch 7.0.0.4 laufen, weil ich seitdem noch nicht dazu gekommen bin, umzuflashen. Ich mache das immer händisch...

Re: Node MCU plus DHT22

Verfasst: 10. Mai 2020 16:13
von peter-pan
udo1toni hat geschrieben: 10. Mai 2020 12:45 Amica sagt mir jetzt nichts :) aber Du wirst mich sicher aufklären
Also Amica ist einfach ein Typ von Development-Board des ESP8266, ebenso wie das Lolin bzw. das WeMos D1 mini. Der Chip ist wohl der gleiche. Lediglich die Anzahl der Pins ist unterschiedlich, soweit ich das verstanden habe und natürlich die Grösse.

Was "Vcc" betrifft, fehlt das tatsächlich bei mir in den "Standard-Flashs", also weder unter State noch unter StatusSTS. Das ist ja das was Joe auch heraus gefunden hat.

Mit OTA-Flash meinte ich eigentlich nicht die Funktion als solche, die funktioniert schon. Aber vielmehr meinte ich die passende .bin-Datei, die ich jetzt auf dem Amica habe. Ich werde aber mal weiter testen, ob das vielleicht doch irgendwie klappt.

Re: Node MCU plus DHT22

Verfasst: 10. Mai 2020 23:42
von udo1toni
Ach so... Na, Du musst die Datei ja nur mit einem Webserver zur Verfügung stellen (wie jetty...)
Du schreibst das *.bin ins html-Verzeichnis und gibst in der Rule den passenden Pfad an, dann lädt Tasmota das Update OTA nicht aus dem Internet sondern direkt von Deinem Rechner.

Re: Node MCU plus DHT22

Verfasst: 11. Mai 2020 11:01
von peter-pan
udo1toni hat geschrieben: 10. Mai 2020 23:42 Na, Du musst die Datei ja nur mit einem Webserver zur Verfügung stellen (wie jetty...)
Hab's mir fast gedacht. Kompilieren muss ich dann aber doch selber für die bestimmte Version. Ich schau mir mal die "Sensor-Version" von Theo an. Vielleicht hat die ja diese Features.
Danke für deine Unterstützung.

Re: Node MCU plus DHT22

Verfasst: 11. Mai 2020 11:22
von udo1toni
peter-pan hat geschrieben: 11. Mai 2020 11:01 Kompilieren muss ich dann aber doch selber für die bestimmte Version.
Ja, sicher. Aber das ist ja normalerweise mit wenigen Klicks erledigt (bis auf das erste Mal, wo die Anpassungen vorgenommen werden müssen).

Re: Node MCU plus DHT22

Verfasst: 11. Mai 2020 18:30
von Joe
Hi Udo, sag mal kannst Du mir bitte in Bezug auf die GPIOs weiterhelfen. Bitte für Anfänger erklären :-) ich würde da gerne weiterkommen.

Re: Node MCU plus DHT22

Verfasst: 11. Mai 2020 18:55
von udo1toni
Tut mir leid, da habe ich mich noch gar nicht mit auseinandergesetzt. Ich habe bisher nur die schnöden Sonoff Basic und Sonoff Touch 2Ch verbaut, da brauchte ich mich nicht mit der GPIO Zuordnung zu beschäftigen, da die Geräte eh in Tasmota angelegt sind.