hatte das jetzt so gefunzt oder musste am Tasmota noch auf den GPIOs ModBr Tx/ Rx eingestellt werden?
Und wie genau sieht ein erster Testscript aus ?
hatte das jetzt so gefunzt oder musste am Tasmota noch auf den GPIOs ModBr Tx/ Rx eingestellt werden?
Und wie genau sieht ein erster Testscript aus ?
Heute ein neues Projekt - da es jetzt langsam kalt wird und manche Lagerräume nach einem Frostschutz rufen!
Vor einigen Jahren habe ich dazu eine Gosung aufgeschraubt und einen Temperatursensor eingebaut -
das geht mit den neuen Dosen von NOUS A8T (ESP32) nicht mehr - ABER, die CPU-Temperaturmessung des ESP-32 lässt sich für diesen Fall nach empirischer Prüfung auch verwenden.
Bei Temperaturen um 2 Grad (und um die geht es beim Frostschutz), ist das maximale Delta der CPU-Temperaturabweichung vom Minimumwert der CPU-Temperatur maximal 3 Grad. D. h. Abweichungen größer 3 Grad vom Minimumwert schalten einen Lüfter (Power1) sofort aus und wenn das Delta 3 Minuten lang unter 3 Grad fällt, wird ein Lüfter eingeschaltet [Wenn Funktion über Button4 aktiviert wurde] (Daten werden mitgeschrieben und können beobachtet werden).
template {"NAME":"<h3>Counter1 = Ein-Anzahl<p>Counter2 = Ein-Minuten<p>Counter3 = Last-Minuten<p>C4 = CPU-Temperatur-Delta","GPIO":[1,1,320,0,32,1,1,1,352,224,2624,353,1,1,225,226,354,417,418,355,0,1,2656,2720,0,0,0,0,1,1,1,1,1,0,0,0],"FLAG":0,"BASE":1}
backlog webbutton1 Dose; Webbutton2 Daten=0; webtime 0,19
backlog Webbutton3 <a href="/cs?"style="color:red">Info</a>; Setoption36 20
backlog Webbutton4 T-Delta; Rule1 1; rule2 1; rule3 1; Timezone 99; Sleep 0; teleperiod 10
VAR1 - ungenutzt
VAR2 A - Anzeige Datenauswertung, L-Datenlöschen, (B-Buttonstandard, U-Userstandard - nicht aktiv, da die 4 Überschrift den Speicher frisst)
VAR3 1 - Minuten werden addiert
VAR4 1 - Deltatemperatur - Reaktion EIN mit Power4 (A- abgeschalten)
VAR5 0 - Deltatemperatur AUS mit Power4 (A - abgeschalten)
VAR6 1 - Minuten werden addiert bei Leistung > mem1
VAR7 energy - aktuelle Leistung
VAR8 Sliderdaten weiss/rot Prüfungszeitansicht vor Einschaltung
VAR9 Sliderdaten RSSI vom WLAN
VAR10 - Deltatemperatur mem9-mem8
VAR11 - Delta-Zähler > 3 Ein
Counter1 - Anzahl Einschaltungen
Counter2 - Laufzeitminuten
Counter3 - Laufzeitminuten > mem1
Counter4 - Delta-Tempanzeige
Slider - weiss/rot - min-Temp / max-Tempdurchschnitt Sigma3
Slider - schwarz/weiss - max Wifi / min Wifi-Signal am Gerät
mem1 - Lastrigger für Minutenmessung *-dringend setzen z.B.30 [30 W]
mem2 - letzte Einschaltzeit
mem3 - letzte Ausschaltzeit
mem8 - min CPU-Temperatur
mem9 - max CPU-Temperatur
mem10 - Time zu max CPU-Temperature
mem11 - Time zu min CPU-Temperature
mem12 - min Leistung >mem1 mit Time
mem13 - max Leistung mit Time
mem14 - Time zu max Leistung
mem15 - Time zu min Leistung
mem16 - Einschalten für automatische Sekunden
rule1
on system#init do Backlog VAR2 1; VAR3 0; VAR6 0; VAR8 0; VAR11 0; Power4 1; time 1587435620; time 0; power3 0 endon
on time#minute|1 do Backlog ADD11 1; counter2 +%VAR3%; counter3 +%VAR6%; Status 11 endon
on tele-Energy#Power>%mem1% do Backlog VAR7 %value%; VAR6 1 endon
on tele-Energy#Power<%mem1% do VAR6 0 endon
on power1#state>0 do Backlog mem2 %timestamp%; VAR3 1; Counter1 +1 endon
on power1#state<1 do Backlog mem3 %timestamp%; VAR3 0 endon
on power3#State>0 do Backlog VAR2 A; power3 0 endon
on power2#State>0 do VAR2 L endon
on tele-ESP32#Temperature>%mem9% do backlog mem9 %value%; mem10 %timestamp% endon
on tele-ESP32#Temperature<%mem8% do backlog mem8 %value%; mem11 %timestamp% endon
on VAR2#state=U do Devicename <style>form button{display:none}</style> endon
on VAR2#state=B do Devicename <style>form button{display:block}</style> endon
rule2
on tele-ESP32#Temperature do Backlog VAR10 %value%; SUB10 %mem8%; event ds endon
on VAR2#state=A do Backlog __Datenbeginn____________________ endon
on VAR2#State=A do Backlog letzte_Ein %mem2% endon
on VAR2#State=A do Backlog letzte_AUS %mem3% endon
on VAR2#state=A do Backlog Leistung_>%mem1%_W endon
on VAR2#state=A do Backlog Leistung_max %mem14%__%mem13%_W endon
on VAR2#state=A do Backlog Leistung_min %mem15%__%mem12%_W endon
on VAR2#state=A do Backlog CPU-Temp_min %mem8%__%mem11%_°C endon
on VAR2#state=A do Backlog CPU-Temp_max %mem9%__%mem10%_°C endon
on VAR2#state=A do Backlog __Datenende______________________ endon
on VAR2#state=A do VAR2 1 endon
on VAR9#state do Dimmer %VAR9% endon
on VAR11#state>3 do Power1 %VAR4% endon
on VAR11#state do Backlog ADD8 100; CT %VAR8% endon
on counter#c4>3 do Backlog VAR11 0; Power1 %VAR5%; VAR8 100 endon
Rule3
on VAR7#State>%mem13% do Backlog mem13 %value%; mem14 %timestamp% endon
on VAR7#State<%mem12% do Backlog mem12 %value%; mem15 %timestamp% endon
on StatusSTS#Wifi#Signal do Backlog VAR9 %value%; MULT9 -1 endon
on event#ds do counter4 %VAR10% endon
on VAR2#state=L do Backlog counter1 0.0; counter2 0.0; counter3 0.0; mem2 0; mem3 0; VAR3 0; VAR6 0; mem12 10000; mem13 0; mem14 0; mem15 0; VAR7 ""; mem8 100; mem9 0; mem10 0; mem11 0; EnergyYesterday 0; EnergyTotal 0; EnergyToday 0; Power2 0; time 0; VAR2 1 endon
on power4#State>0 do Backlog VAR4 1; VAR5 0 endon
on power4#State<1 do Backlog VAR4 A; VAR5 A endon
________________________________________________________________________________________________________
Auswertung über VAR2 A oder Button3 erreichbar !
warme 20 Gradumgebung sleep 0
18:23:52.915 RUL: VAR2#STATE=A performs "Backlog CPU-Temp_min 51.7__2024-11-30T18:11:23_°C"
18:23:52.930 RUL: VAR2#STATE=A performs "Backlog CPU-Temp_max 64.4__2024-11-29T23:10:25_°C"
kalte 2 Gradumgebung sleep 0
21:30:33.509 RUL: VAR2#STATE=A performs "Backlog CPU-Temp_min 50.6__2024-11-30T21:19:48_°C"
21:30:33.523 RUL: VAR2#STATE=A performs "Backlog CPU-Temp_max 53.3__2024-11-30T21:17:29_°C"
Wenn der Steckdose noch die Rule3 hinzugefügt und auf das Bluetooth -Release 13.3 mit OTA gewechselt wird, kann mit einem Peripheral-Gerät (Slave z.B. Fotobluetooth -Auslöser) diese Geräteannäherung durch die Steckdose gemessen werden und eine Reaktion auf Basis der RSSI dort oder bei einem weiteren Gerät mit websend, ausgelöst werden.
Rule3
on BLEDevices#3A07980114B6#r do VAR8 %value% endon
on BLEDevices#4A17980114BB#r do VAR8 %value% endon
on VAR8#state>%mem4% do Backlog Power1 1; websend [192.168.1xx.xx] /cm?cmnd=Power1%201 endon
on VAR8#state<%mem5% do Backlog Power1 0; websend [192.168.1xx.xx] /cm?cmnd=Power1%200 endon
ON BLE#devices<1 do Backlog Power1 0; websend [192.168.1xx.xx] /cm?cmnd=Power1%200 endon
PS:
1.) leider habe ich keine APP für iOS und Android bisher gefunden die ein Slave-Gerät auf der Smartphon virtuell permanent erzeugt.- hat da jemand was für mich?
2.) die UUID durch eine %mem7% zu ersetzen ist mir aktuell noch nicht gelungen
3.) einen Auswertung von on BLEDevices#?#r do VAR8 %value% endon funzt auch nicht
Nachtrag zum Thema aus dem Wiki:
WLANs nach 802.11n sind zu 802.11b- und 802.11g-Netzen kompatibel. Der Kompatibilitätsmodus ermöglicht eine Koexistenz von 802.11n- und bestehenden 802.11a-Netzen. Der Kompatibilitätsmodus kann in manchen Implementierungen auch deaktiviert werden (sogenannter „Greenfield-Modus“), um die Leistungsfähigkeit des 11n-Netzes zu steigern. Dies senkt jedoch die Leistung anderer am gleichen Ort aktiver 802.11a-Netze, da diese das 802.11n-Netz in diesem Falle als Emissionen von Radargeräten interpretieren und aufgrund der vorgeschriebenen DFS ihren Kanal wechseln, was letztlich zu einem Totalausfall durch DoS bei dem 802.11a-Netz führen kann.[3] Da der Draft von 802.11n noch zwingend die Verwendung von WPA2 vorsah, muss bei den Draft-N-Geräten explizit WPA2 (AES) als Verschlüsselung ausgewählt werden, um die volle Bandbreite nutzen zu können.
Hier ein Beispiel bei dem die zusätzlichen GPIOs schon gebraucht werden für weitere Datenerhebungen und Ausgaben.
Für eine Entfeuchtungsanlage welche über den Tasmota Timer nur zur Tageszeit gestartet wird ergibt Counter1 die Anzahl Tage, Counter 2 die mögliche Laufzeit und Counter3 die Aktionszeit der Entfeuchtung wenn mem1 entsprechend eingestellt ist.
Zusätzliche Daten der Steckdosenleistung erheben wie max und min Leistung oberhalb der mem1-Einstellung usw.
(Achtung - geht so nur bis zum Release 13.0.5 )
template {"NAME":"Counter1 = Ein-Anzahl <p> Counter2 = Ein-Minuten <p> Counter3 = Last-Minuten" ,"GPIO":
[1,1,320,1,32,1,1,1,352,224,2624,353,1,1,225,226,354,1,1,1,0,1,2656,2720,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1}
backlog webbutton1 Dose; Webbutton2 Daten=0; webtime 0,19
backlog Webbutton3 <a href="/cs?"style="color:red">Info</a>; Setoption36 20
backlog Rule1 1; rule2 1; rule3 1; Timezone 99; Sleep 0; teleperiod 10
VAR1 - ungenutzt
VAR2 A - Anzeige Datenauswertung, B-Buttonstandard, U-Userstandard, L-Datenlöschen
VAR3 1 - Minuten werden addiert
VAR6 1 - Minuten werden addiert bei Leistung > mem1
VAR7 energy - aktuelle Leistung
VAR8 RSSI zur UUID
Counter1 - Anzahl Einschaltungen
Counter2 - Laufzeitminuten
Counter3 - Laufzeitminuten > mem1
mem1 - Lastrigger für Minutenmessung *-dringend setzen z.B.30 [30 W]
mem2 - letzte Einschaltzeit
mem3 - letzte Ausschaltzeit
mem4 - RSSI Einschalten z.B. -70 *setzen
mem5 - RSSI Aussschalten z.B. -80 *setzen
mem6 - UUID BLE-Gerät z.B. AA07980114B6
mem7 - UUID BLE-Gerät z.B. BBA7980114BB
mem12 - min Leistung >mem1 mit Time
mem13 - max Leistung mit Time
mem14 - Time zu max Leistung
mem15 - Time zu min Leistung
Alles anzeigen
rule1
on system#init do Backlog VAR2 1; VAR3 0; VAR6 0; time 1587435620; time 0; power3 0 endon
on time#minute|1 do Backlog counter2 +%VAR3%; counter3 +%VAR6% endon
on tele-Energy#Power>%mem1% do Backlog VAR7 %value%; VAR6 1 endon
on tele-Energy#Power<%mem1% do VAR6 0 endon
on power1#state=1 do Backlog mem2 %timestamp%; VAR3 1; Counter1 +1 endon
on power1#state=0 do Backlog mem3 %timestamp%; VAR3 0 endon
on power3#State>0 do Backlog VAR2 A; power3 0 endon
on power2#State>0 do VAR2 L endon
on VAR2#state=U do Devicename <style>form button{display:none}</style> endon
on VAR2#state=B do Devicename <style>form button{display:block}</style> endon
rule2
on VAR7#State>%mem13% do Backlog mem13 %value%; mem14 %timestamp% endon
on VAR7#State<%mem12% do Backlog mem12 %value%; mem15 %timestamp% endon
on VAR2#state=A do Backlog __Datenbeginn____________________ endon
on VAR2#State=A do Backlog letzte_Ein %mem2% endon
on VAR2#State=A do Backlog letzte_AUS %mem3% endon
on VAR2#state=A do Backlog Leistung_>%mem1%_W endon
on VAR2#state=A do Backlog Leistung_max %mem14%__%mem13%_W endon
on VAR2#state=A do Backlog Leistung_min %mem15%__%mem12%_W endon
on VAR2#state=A do Backlog __Datenende______________________ endon
on VAR2#state=A do VAR2 1 endon
on VAR2#state=L do Backlog counter1 0.0; counter2 0.0; counter3 0.0; mem2 0; mem3 0; VAR3 0; mem12 10000; mem3 0; mem13 0; mem14 0; VAR2 1; VAR7 ""; EnergyYesterday 0; EnergyTotal 0; EnergyToday 0; Power2 0; time 0 endon
Alles anzeigen
Jetzt unter 40 Euro 4 Stück mit Tasmota ESP32 (viele Ports um WebUI-Buttons und Programme verwalten zu können !) - Nous A8T Tasmota vorinstalliert Release 13.3 und CPU ESP32-U4WDH-D v3.1 (Dual Core + 4MB aber mit dem Release der interne Hall-Sensor nicht mehr unterstützt)
Erweiterung:
backlog webbutton1 Ein/Aus; Webbutton2 Rückstellen; Webbutton3 Daten; webtime 0,19
template {"NAME":"Counter1 = Einschaltungen <p> Counter2 = Laufzeitminuten","GPIO":[1,1,320,1,32,1,1,1,352,224,2624,353,1,1,225,226,0,1,1,1,0,1,2656,2720,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1}
rule1
on system#init do Backlog VAR3 0; VAR4 0; time 1587435620; time 0; power3 0 endon
on time#minute|1 do Backlog ADD4 %VAR3% endon
on VAR4#state do Backlog Counter2 +1 endon
on power1#state=1 do Backlog mem2 %timestamp%; VAR3 1; Counter1 +1 endon
on power1#state=0 do Backlog mem3 %timestamp%; VAR3 0 endon
on power2#State>0 do Backlog counter1 0.0; counter2 0.0; mem2 0; mem3 0; VAR3 0; time 0; power2 0 endon
on power3#State>0 do VAR2 A endon
on VAR2#State=A do Backlog letzte_Ein_%mem2% endon
on VAR2#State=A do Backlog letzte_AUS_%mem3% endon
Variante 4 einer Systemselbstüberwachung
mit separater MQTT-Beobachtung (Achtung - diese Prozesse laufen schneller ab)
Rule3
on system#init do Backlog VAR3 0; VAR4 0 endon
on time#minute|1 do Backlog ADD2 %VAR3%; ADD5 %VAR4% endon
ON mqtt#disconnected DO ADD3 1 endon
ON wifi#disconnected DO ADD4 1 endon
ON mqtt#connected DO Backlog VAR2 0; VAR3 0 endon
ON wifi#connected DO Backlog VAR5 0; VAR4 0 endon
on VAR2#state>20 do Backlog mem3 %timestamp%; Restart 1 endon
on VAR5#state>2 do Backlog mem4 %timestamp%; Restart 1 endon
Rule1
on System#Boot do RuleTimer1 10 endon
on Rules#Timer=1 do backlog RuleTimer1 10; Publish stat/%topic%/SENSOR {"Current":%current%} endon
or
Rule1
ON mqtt#connected DO cmnd/tasmota/Status 0 ENDON
and that's normal Gosund plug
teleperiod 10
Rule1
on tele-ENERGY#Current do Publish stat/tasmota/SENSOR {"Current":%value%} endon
Rule1
on tele-AM2301#Temperature do Publish tele/%topic%/SENSOR {"Temperature":%value%} endon
wer ein IF einbaut ist ein Profi da er selbst kompilierte tasmota.bin verwendet oder steckt noch nicht im System - deine Rule geht so garnicht! du musst den neuen Ansatz von HoerMirAuf nutzen und verstehen.
bitte abarbeiten
1) Ruls löschen
Rule1 ""
Rule2 ""
rule3 ""
2) jetzt beide Rules von Hoermirauf einbauen
3) mit Rule0 in der Konsole den Einbau prüfen
4) in der Konsole auch das absetzen in einem Zug
backlog rule1 1; rule2 1; rule1 5
5) Konsolenausgaben posten
5a) Status 10
5b) und dann noch zum Fehlerumfeld
6) Wenn es läuft- Problem mit den DS18 - Namen geregelt, kann der Rest rein wenn nötig
Wenn das System mit dem Start kein NTP Gateway findet ( z.B. weil nach Stromausfall WLAN erst noch hochläuft) dann wird wenigstens ein Datum und eine Uhrzeit (Vergangenheit - Epochenzahl für April 2020 (1587435620 4:20 Uhr Sommerzeit nahe der Tag/Nachtgleiche vor Start von PV- Leistungserwartung) kann man auch noch testen und weiter reagieren) um Timer-Prozesse zu unterstützen- sonst steht das System bis Time 0 ein Zeitsyc ermöglicht
und wenn das Teststadium durch ist kann auch die letzte Zeile substituiert werden
rule3
on system#init do Backlog VAR3 0; time 1587435620 endon
on time#minute|1 do Backlog ADD3 1; Time 0 endon
on VAR3#state>%mem5% do Backlog mem3 %timestamp%; counter1 +1; Restart 1 endon
on VAR3#State>0 do wifiscan 1 endon
on WifiScan#?#SSId=%mem1% do var3 0 endon
mem1 = SSID eintragen auf die geprüft werden soll
counter1 = Anzahl der Reboots wegen WLAN-Verlust (Config counter1 einstellen)
mem3 = beinhaltet letzten Reboot-Zeitpunkt
Variante 3 - für alle ESP-Systeme (das Einfrieren des Tasmota-WLAN-Systems durch Reboot auflösen)
in der Standard-Software ist kein ping4 und kein Response aktiv, somit sind andere Lösungen zur Selbsterkennung erforderlich
die Idee - wenn der ESP sein Ziel-WLAN 5 mal (WLAN-Router) nicht mehr Scannen kann wird er neu gestartet
sleep 250 setzen um WLAN zu verbessern
mem1 = SSID eintragen auf die geprüft werden soll
mem4=5 Anzahl der Prüfungen bis Reboot
counter1 und Relay3 in der Config etablieren
mem2 erstes Reboot und mem3 letzte Reboot zum WLAN-Problemen
counter1 Anzahl Reboot zu WLAN
WebUI-Button3 Reset der WLAN-Messdaten
rule3
on system#init do Backlog VAR3 0; time 1587435620; time 0; power3 0 endon
on time#minute|1 do Backlog ADD3 1; Time 0 endon
on VAR3#state>%mem5% do Backlog counter1 +1; mem3 %timestamp%; Restart 1 endon
on counter#c1=1 do Backlog mem2 %timestamp%; counter1 +1 endon
on VAR3#State>0 do wifiscan 1 endon
on WifiScan#?#SSId=%mem1% do var1 %value% endon
on VAR1#state=%mem1% do backlog WLAN-OK; VAR3 0 endon
on tele-Wifi#Downtime do Backlog ohne WLAN==>>%value%; mem4 %value% endon
on power3#State>=1 do Backlog test==>; counter1 0.0; mem2 0; mem3 0; mem4 0; VAR3 0; time 0; power3 0 endon
das Einfrieren des Tasmota-WLAN-Systems durch Reboot auflösen.
Variante 1a - Umgebaut und geht auch mit ESP32-Standardrelease (mindestens bei 14.3.0 ESP32-C3)
(Webquery als Variante braucht RESPONSE als Compileroption und ist erst recht nicht im Standardrelease)
Wenn in der Zeiteinheit 3*1 Minute wenigstens eine Verbindung zum Gateway erfolgreich getestet wurde, erfolgt kein Reboot.
letzte Rebootzeit steht in mem2
Rule3
on system#init do Backlog VAR4 1; VAR5 1; VAR3 0; time 1587435620 endon
on time#minute|1 do Backlog time 0; Status 5 endon
on StatusNET#Gateway do Backlog VAR2 %value% endon
on VAR2#State do ping4 %VAR2% endon
on Ping#?#Success do Backlog ADD3 %value%; ADD4 1 endon
on VAR4#State>2 do Mult5 %VAR3% endon
on VAR5#State<1 do Backlog Boot; mem2 %timestamp%; Restart 1 endon
on VAR5#State>1 do Backlog O.K:; VAR4 1; VAR5 1; VAR3 0 endon
PS: Hat jemand eine bessere Lösung - speziell für ESP8266 Systeme für ein Standardrelease? ? abgesehen von der Variante !
14.3.0.6 -Add command WebColor20 to control color of Button when Off
was Einstein alles findet 👍
du brauchst keinen Widerstand- dafür wird der interne Pullup geschaltet mit Setoption74 1 auf den GPIO welchen du in der Configuration als DS18 benannt hast.
siehe Link
Befehle~
SetOption74 1
kann verwendet werden, um internes Pullup zu aktivieren/deaktivieren (0) , wenn ein einzelner DS18x20-Sensor verwendet wird (für mehrere Sensoren müssen Sie einen externen Pullup-Widerstand verwenden). Dies funktioniert nur auf ESP8266 (ESP-12 is ESP8266EX, which is a high integration wireless SoC (System on Chip))
1. Versuch - Backup oder älteres Releas einspielen
2. Variante - Sind Rules im System - dann mal Rule0 eingeben in der Konsole und das Ergebnis posten
3. V - Status0 - eingeben und posten
richtig- erst Config, dann so74 ( als Ersatz für den PullUp) und schon ist er beim nächsten Start in der Anzeige
der Sensor wird erst erkannt und angezeigt wenn alles stimmt- so74 gesetzt usw.
siehe