Schnup89 / LIVY_RING_G2-Tasmota

25 stars 4 forks source link

Tasmota 12.2.01 - Testing #20

Open Schnup89 opened 1 year ago

Schnup89 commented 1 year ago

Hallo zusammen,

ich habe heute die Module für das aktuelle Tasmota 12.2.0.1 neu geschrieben. Der Antrieb war die Verbesserte kompatibilität des ESP32 mit den neuen Versionen. Zum Beispiel funktioniert der Buzzer "ab Werk" ohne Source-Code Anpassungen und ich gehe davon aus dass der initiale Flash-Vorgang mit dem ESP_Flasher keine zusätzlichen Dateien mehr benötigt, nur noch die für den LivyRing angepasste Binary.

Vorgehensweise:

Sollte es Probleme geben mit den gpios oder sonstigem:

Sensor90 PYQ ist jetzt Sensor102, Kommandos dafür würden also lauten:

Sensor102 sens, 30
Sensor102 blind, 2
Sensor102 pulse, 1

Für den Spannungssensor-Alarm anstatt Sensor89 nun Sensor101 verwenden:

Rule2 ON System#Boot DO Sensor101 perc, 15 ENDON
Rule2 1

Der MCP4706 für die Steuerung des GAS-Erkennungs-Heater Modul wurde nicht übernommen da wir leider immer noch nicht zuverlässig das GAS auslesen können. -> Falls das doch wer benutzt und Upgraden möchte bitte ich um Infos.

Solltet ihr die neue Version ausprobiert haben, gebt mir bitte eine kurze Rückmeldung,

ToDo's:

livyringg2tasmo-12.zip

jojeji commented 1 year ago

Hi, ich habe über die WebUI geflashed und die neuen Rules/sensoren eingetragen. Was mir aufgefallen ist, ist dass der Temperatursensor auf einmal nach oben ging (30° - schön wär´s ) und die Humidity nach unten. Habe im Anschluss die Konfiguration resettet. Nun taucht der Temperatur Sensor nicht mehr auf. Anbei mal das log nach dem Booten:

00:00:00.002 HDW: ESP32-D0WDQ6 00:00:00.100 UFS: FlashFS mounted with 304 kB free 00:00:00.194 CFG: Loaded from File, Count 23 00:00:00.210 QPC: Count 1 00:00:00.459 BRY: Berry initialized, RAM used=4041 bytes 00:00:00.511 Project tasmota - Tasmota Version 12.2.0.1(tasmota)-2_0_5(2022-10-23T13:52:10) 00:00:55.408 I2C: LC709203F found at 0xb (Port 1) 00:00:55.410 PYQ1548: regval = 0x00304D10 00:00:55.412 PYQ1548: count_mode [0] = 0 00:00:55.413 PYQ1548: hpf cut off [2] = 0 00:00:55.414 PYQ1548: signal source [6..5] = 0 00:00:55.426 PYQ1548: op mode [8..7] = 2 00:00:55.428 PYQ1548: window time [10..9] = 2 00:00:55.429 PYQ1548: pulse counter [12..11] = 1 00:00:55.431 PYQ1548: blind time [16..13] = 2 00:00:55.443 PYQ1548: threshold [24..17] = 24 00:00:55.657 RSL: SENSOR = {"Time":"1970-01-01T00:00:55","Switch1":"OFF","Switch2":"ON","LC709203F":{"Voltage":4.16,"Cell_Remain":95.0,"RSOC Charge":95.0},"PYQ":{"Movement": true},"MIC":{"Noise_Level (db)": 0.0}} 00:00:55.729 RSL: SENSOR = {"Time":"1970-01-01T00:00:55","Switch1":"OFF","Switch2":"ON","LC709203F":{"Voltage":4.16,"Cell_Remain":95.0,"RSOC Charge":95.0},"PYQ":{"Movement": true},"MIC":{"Noise_Level (db)": 78.4}} 00:00:56.428 WIF: Connecting to AP1 Home Channel 9 BSSId 00:31:92:23:6E:E8 in mode 11n as tasmota-3C7FEC-8172... 00:00:56.806 RSL: SENSOR = {"Time":"1970-01-01T00:00:56","Switch1":"OFF","Switch2":"ON","LC709203F":{"Voltage":4.07,"Cell_Remain":95.0,"RSOC Charge":95.0},"PYQ":{"Movement": true},"MIC":{"Noise_Level (db)": 6.6}} 00:01:00.277 WIF: Connected 07:43:56.184 HTP: Web server active on tasmota-3C7FEC-8172 with IP address 192.168.55.147 07:43:57.532 MQT: Attempting connection... 07:43:57.577 MQT: Connected 07:43:57.587 MQT: tele/tasmota_3C7FEC/LWT = Online (retained) 07:43:57.593 MQT: cmnd/tasmota_3C7FEC/POWER = 07:43:57.604 MQT: tele/tasmota_3C7FEC/INFO1 = {"Info1":{"Module":"ESP32-LivyRingG2","Version":"12.2.0.1(tasmota)","FallbackTopic":"cmnd/DVES_3C7FEC_fb/","GroupTopic":"cmnd/tasmotas/"}} 07:43:57.627 MQT: tele/tasmota_3C7FEC/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota-3C7FEC-8172","IPAddress":"192.168.55.147"}} 07:43:57.652 MQT: tele/tasmota_3C7FEC/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":6}} 07:43:57.664 MQT: stat/tasmota_3C7FEC/RESULT = {"POWER1":"ON"} 07:43:57.669 MQT: stat/tasmota_3C7FEC/POWER1 = ON 07:43:57.674 MQT: stat/tasmota_3C7FEC/RESULT = {"POWER2":"OFF"} 07:43:57.679 MQT: stat/tasmota_3C7FEC/POWER2 = OFF 07:43:57.686 MQT: stat/tasmota_3C7FEC/RESULT = {"POWER3":"ON"} 07:43:57.691 MQT: stat/tasmota_3C7FEC/POWER3 = ON 07:43:57.696 MQT: stat/tasmota_3C7FEC/RESULT = {"POWER4":"OFF"} 07:43:57.701 MQT: stat/tasmota_3C7FEC/POWER4 = OFF 07:43:57.798 RUL: SYSTEM#BOOT performs "Backlog Sensor102 sens, 30; Sensor102 blind_time, 2; Sensor102 pulse, 1" 07:43:57.820 RUL: SYSTEM#BOOT performs "Sensor101 perc, 15" 07:43:57.835 MQT: stat/tasmota_3C7FEC/RESULT = {"LC709203F":"Command - OK"} 07:43:58.073 MQT: stat/tasmota_3C7FEC/RESULT = {"PYQ":"Command - OK"} 07:43:58.319 MQT: stat/tasmota_3C7FEC/RESULT = {"PYQ":"Command - FAILED"} 07:43:58.573 MQT: stat/tasmota_3C7FEC/RESULT = {"PYQ":"Command - OK"} 07:43:58.676 QPC: Reset 07:43:58.753 MQT: stat/tasmota_3C7FEC/RESULT = {"Time":"2022-10-25T07:43:58","Uptime":"0T00:00:07","UptimeSec":7,"Heap":103,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":77,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":43},"POWER1":"ON","POWER2":"OFF","POWER3":"ON","POWER4":"OFF","Dimmer":10,"Color":"1A1A1A","HSBColor":"0,0,10","Channel":[10,10,10],"Scheme":0,"Fade":"OFF","Speed":1,"LedTable":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"00:31:92:23:6E:E8","Channel":9,"Mode":"11n","RSSI":26,"Signal":-87,"LinkCount":1,"Downtime":"0T00:00:04"}} 07:43:58.848 MQT: stat/tasmota_3C7FEC/STATUS10 = {"StatusSNS":{"Time":"2022-10-25T07:43:58","Switch1":"OFF","Switch2":"ON","LC709203F":{"Voltage":4.07,"Cell_Remain":95.0,"RSOC Charge":95.0},"PYQ":{"Movement": true},"MIC":{"Noise_Level (db)": 12.1}}} 07:44:01.663 MQT: tele/tasmota_3C7FEC/STATE = {"Time":"2022-10-25T07:44:01","Uptime":"0T00:00:10","UptimeSec":10,"Heap":103,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":45,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":43},"POWER1":"ON","POWER2":"OFF","POWER3":"ON","POWER4":"OFF","Dimmer":10,"Color":"1A1A1A","HSBColor":"0,0,10","Channel":[10,10,10],"Scheme":0,"Fade":"OFF","Speed":1,"LedTable":"ON","Wifi":{"AP":1,"SSId":"Home","BSSId":"00:31:92:23:6E:E8","Channel":9,"Mode":"11n","RSSI":26,"Signal":-87,"LinkCount":1,"Downtime":"0T00:00:04"}} 07:44:01.745 MQT: tele/tasmota_3C7FEC/SENSOR = {"Time":"2022-10-25T07:44:01","Switch1":"OFF","Switch2":"ON","LC709203F":{"Voltage":4.05,"Cell_Remain":95.0,"RSOC Charge":95.0},"PYQ":{"Movement": true},"MIC":{"Noise_Level (db)": 14.5}} 07:45:01.734 MQT: tele/tasmota_3C7FEC/SENSOR = {"Time":"2022-10-25T07:45:01","Switch1":"OFF","Switch2":"ON","LC709203F":{"Voltage":4.05,"Cell_Remain":94.0,"RSOC Charge":94.0},"PYQ":{"Movement": true},"MIC":{"Noise_Level (db)": 34.3}} 07:45:11.687 MQT: tele/tasmota_3C7FEC/SENSOR = {"Time":"2022-10-25T07:45:11","Switch1":"OFF","Switch2":"ON","LC709203F":{"Voltage":4.05,"Cell_Remain":94.0,"RSOC Charge":94.0},"PYQ":{"Movement": false},"MIC":{"Noise_Level (db)": 12.2}} 07:45:12.692 MQT: tele/tasmota_3C7FEC/SENSOR = {"Time":"2022-10-25T07:45:12","Switch1":"OFF","Switch2":"ON","LC709203F":{"Voltage":4.05,"Cell_Remain":94.0,"RSOC Charge":94.0},"PYQ":{"Movement": true},"MIC":{"Noise_Level (db)": 8.0}}

Bin erst seit letzter Woche hiermit unterwegs. Habe also nicht so viel Erfahrung. Schon in dem 9er Build ist mir aufgefallen, dass der Bewegungssensor viele Bewegungen erkannt hat, obwohl niemand im Raum war. Mal schauen, wie es sich mit tasmota12 verhält. EDIT: Nachdem ich den Livy ring wieder über Batterien am Laufen hatte, wurde nun auch der Temperatursensor mit angezeigt.

Schnup89 commented 1 year ago

Hi und vielen Dank für's testen.

Den Temperaturunterschied mit/ohne Batterien kann ich nachstellen ich schaue es mir an.

Schnup89 commented 1 year ago

*** Offene Punkte im ersten Beitrag ergänzt

Habe also nicht so viel Erfahrung. Schon in dem 9er Build ist mir aufgefallen, dass der Bewegungssensor viele Bewegungen erkannt hat, obwohl niemand im Raum war

Hast du die Sensitivity vom Bewegungsmelder nach oben anpassen, dann hast du evtl. weniger False-Positive.

Mit Tasmota12 Sensor102 sens, 45

Mit Tasmota9 Sensor90 sens, 45

jojeji commented 1 year ago

Ich habe gestern mal "Sensor102 sens, 45" eingestellt. Leider gab es wieder sehr viele false-positiv: image Dieser Sensor empfängt die Daten über MQTT und stellt sich bei "TRUE" auf on und nach einem "FALSE" 60 sek. später auf off (durch HA geregelt). Die Regel zum publishen habe ich so eingerichtet: ON PYQ#Movement$!%var1% DO Backlog var1 %value%; publish stat/%topic%/MOTION %value% ENDON . So sollte der sensor nur dann wieder etwas schicken, wenn sich der State verändert hat. Das funktioniert m.E. auch richtig. Der Sensor ist in den Raum gerichtet, kein Fenster im Blickwinkel.

Schnup89 commented 1 year ago

Setze mal bitte den Pulse counter auf 3 Sensor102 pulse, 3

und die sensitivity auf 200. Mit der Sensitivity kannst du "spielen" zwischen 0 und 255 (255 = am wenigsten Sensitiv)

jojeji commented 1 year ago

Mit der Sensitivity kannst du "spielen" zwischen 0 und 255 (255 = am wenigsten Sensitiv)

Ah Perfekt diese Info hatte mir gefehlt. Zum Thema Temperatursensor: Kann es sein, dass dieser prinzipiell etwas zu viel misst? Im Vergleich zu den Zimmern nebenan ist er immer 1-2°C drüber, obwohl es nicht wirklich wärmer ist. Ich habe mal einen Sensor von Aqara daneben geleget und die Kurve beobachtet. So sieht es momentan im Vergleich aus: image (Büro ist der Livy Ring)

Schnup89 commented 1 year ago

Hast du den Bewegungssensor mit den Sensitivity-Werten in den Griff bekommen? Bzgl. Temperatur habe ich eine Idee, ist dein Livy-Ring geschlossen (Plastik-Abdeckung wieder aufgesetzt)? Möglicherweise ist der Heater für die Gas-Messung (welcher im Original-Quellcode immer nur für wenige Millisekunden aktiviert wird) dauerhaft eingeschaltet was die Temperatur im Ring erhöht. Ich kompiliere die Tage das MCP4706-Modul für die neue Tasmota-Version, dann können wir den Heater per Kommandozeile schalten und schauen ob die Temperatur niedriger wird.

jojeji commented 1 year ago

Jap, habe sens auf 45 gestellt (hatte vergessen es auch als Regel zu hinterlegen) und pulse auf 3. Nun sieht es sehr gut aus :)

Ja die Abdeckung hatte ich wieder drauf. Ich bin mir aber nicht sicher, ob es das ist. Denn merkwürdig war: Batterie des Livy-Rings war leer. Danach habe ich ihn wieder per Kabel angesteckt. Nun taucht der Temperatursensor nicht wieder auf: image Ziehe ich das Kabel ab, bleibt es dabei. Entnehme ich nun die Batterien und setze sie wieder ein, ist der Temperatursensor wieder da.

Schnup89 commented 1 year ago

Zu dem Problem dass der Sensor nicht erscheint: Wenn die I2C Verbindung zu dem Sensor (HDC1080) einmal unterbrochen ist, wir diese bis zu einem reboot nicht mehr aufgebaut. Das könnte dein Problem erklären, evtl. schaltet sich der HDC1080 kurz ab wenn die Batterie oder Stecker gezogen wird. Das ist leider ein generelles Tasmota i2C Problem.

Zum Thema Temperaturoffset: Ich blicke bei der Berechnung der Werte im original HDC1080-Code nicht durch, evtl. muss man da bzgl des ESP32 etwas an den Werten anpassen:

https://github.com/arendst/Tasmota/blob/development/tasmota/tasmota_xsns_sensor/xsns_65_hdc1080.ino

#define HDC1080_CONV_TIME   15      // Assume 6.50 + 6.35 ms + x of conversion delay for this device
#define HDC1080_TEMP_MULT   0.0025177f
#define HDC1080_RH_MULT     0.0015258f
#define HDC1080_TEMP_OFFSET 40.0f

Ich habe den TEMP_OFFSET auf +3 Grad angepasst so passt die Temperatur bei mir wenn ich diese mit meinem Thermostat vergleiche.

livyringg2-tasmo-12_08_nov22.zip