NEWS
alte Fenstersensoren Smart machen
-
Hab heute mal einen ersten Test gemacht.
Klappt soweit ganz gut.Hab den Fensterkontakt wie in deinem Bild an D5 angeschlossen.
In der Konsole wird erkannt, ob offen oder geschlossen.
Aber irgendwie erkennt er es als Power ON und OFF.Deswegen kommt per MQTT in Iobroker der POWER Status mit True der False an.
Wenn ich nur einen Kontakt anschließe, würde es ja gehen.
Aber wenn es z.B. 5 sind müsste ich dann nicht 5 verschiedene Status Meldungen per MQTT senden ?Es gibt in MQTT noch folgendes
sonoff.0.tamso_relais.Switch1
Das wäre vermutlich das was ich suche, z.B. später noch Switch 1 - 5 z.B.
Kann es sein, das ich das in der Script Konsole noch irgendwie verbinden muss ? -
erledigt, geht doch
Hatte die 5 Min bei MQTT vergessen.
Wird ja nur der Power Wert sofort bei Änderung an den MQTT Server gesendet
Der Status der Reed Kontakte wird ja nur nach dem Ablauf der gespeicherten Zeit gesendet.Kam dann an, sowohl für Switch1 als auch für Switch2
22:35:41.420 MQT: tele/tasmota_0E059C/SENSOR = {"Time":"2023-12-23T22:35:41","Switch1":"ON","Switch2":"OFF"}
-
-
wow, da ist ja noch so viel möglich
Seit 5 Jahren steht schon die Briefkasten Überwachung auf dem Zettel.
Im Kabel der Telefonanlage sind noch paar Adern frei, da werde ich noch so einen Reed Kontakt an den Briefkasten basteln.Dürfte mit einem Reedkontakt aber schwierig werden, denn wenn der Postbote den Briefkasten innerhalb von 10 Sekunden wieder schließt, also kurz vor der nächsten MQTT Sendung, dann verpasse ich den
Oder kann man tasmota davon überzeugen, das es sofort ein Update macht, sobald sich von einer GPIO der Status ändert ? Dann müsste ich nur schauen, ob es heute mal eine Status Änderung auf Switch XYZ gab. Dann wüste ich, Briefkasten hat sich geöffnet.
-
Was den Briefkasten betrifft bekommst du ja bei einem Switch die Meldung sofort über
Power on / off zurück. Welcher Switch das ist in 10 sec.
Bei den Fenstern ist das Ähnlich, du siehst wieviele auf Power on / off wechseln also die
Anzahl,, welche Fenster siehst du halt 10 sec später.
Per Blockly oder Scripting bauste dann noch einen Tageszähler ein.
Spielerei ohne Ende halt.Beispiel Blockly Briefkastentageszähler:
wenn switch ist > 2 min on oder off steckt mit hoher Wahrscheinlichkeit die
Tageszeitung im Einwurf.
wenn switch ist > 2 min über Nacht Wartungbefehl auslösen -> Klappe Ölen -
sollte in der .bin mit drin sein
#define SUPPORT_MQTT_EVENT
Mqtt Adapter
Tasmota
der Code
>D Timer=0 BAD="ERR" KUE="ERR" WOZ="ERR" ESZ="ERR" BKT="ERR" TXT=111 sw1=0 sw2=0 sw3=0 sw4=0 sw5=0 >BS +>subscribe EA, cmnd/Windows/Bad +>subscribe EA, cmnd/Windows/Küche +>subscribe EA, cmnd/Windows/Wohnzimmer +>subscribe EA, cmnd/Windows/Esszimmer +>subscribe EA, cmnd/Windows/Balkontür >S Timer+=1 ;Executed every second sw1=sw[0] sw2=sw[1] sw3=sw[2] sw4=sw[3] sw5=sw[4] if sw1>0 then BAD="OFFEN" else BAD="ZU" endif if sw2>0 then KUE="OFFEN" else KUE="ZU" endif if sw3>0 then WOZ="OFFEN" else WOZ="ZU" endif if sw4>0 then ESZ="OFFEN" else ESZ="ZU" endif if sw5>0 then BKT="OFFEN" else BKT="ZU" endif if Timer>5 then +>publish Windows/Bad %BAD% +>publish Windows/Küche %KUE% +>publish Windows/Wohnzimmer %WOZ% +>publish Windows/Esszimmer %ESZ% +>publish Windows/Balkontür %BKT% Timer=0 endif >W Bad{m} %BAD% Küche{m} %KUE% Wohnzimmer{m} %WOZ% Esszimmer{m} %ESZ% Balkontür{m} %BKT% #
meine .bin
#define USE_SCRIPT_STATUS #define USE_WEBSEND_RESPONSE #define USE_SCRIPT_STATUS #define USE_SCRIPT_FULL_JSON_PARSER #define USE_SCRIPT_JSON_EXPORT #define SUPPORT_MQTT_EVENT #define USE_SCRIPT_WEB_DISPLAY #define USE_SCRIPT_SERIAL #define USE_DISPLAY
-
Das schaut interessant aus, kannst du die bin mal uppen
Es ist ja wohl nicht die Standard Version oderDanke im Voraus
-
-
ok, dann teste ich die gleich mal
-
klappt, schaut so aus wie bei dir
Bei den Fenstern ist es ja mehr oder weniger Egal, ob die Meldung 10 oder 20 Sek später kommt.
Briefkasten:
Sobald ich alles zusammengebaut hab, teste ich mal, ob ein schneller Einwurf unter 2 Sekunden, registriert wirdDu nutzt hier quasi ein zusätzliches MQTT und nicht den, mit Power und Switch von den Tasmota Einstellungen. Ist nur ne optische Verschönerung oder ? Oder gibts noch eine andere Änderung ?
-
Eigene Datenpunkte erstellen für jeden switch per mqtt subscribe.
Power, Switch, Relay usw bleibt ja weiterhin aktiv.
Sonst verliert man die Übersicht bei so vielen Sensoren. -
ok, hast recht, bei dann vielleicht 10 Auswertungen ist das besser
Frage zum Script, das läuft 1x pro Sekunde durch ?
Auch wenn 5h nix passiert ?
Gibt es nicht sowas wie, führe aus, wenn es eine Änderung gibt ?
Nur so eine Idee, damit der nicht ständig arbeiten muss -
geht technisch per Interrupt,
einfach -> nein, viel Arbeit -
ok, dann muss er also der EPS32 arbeiten
-
bei 1 sec langweilt sich das IC
-
Die Temperatur DHT22 Sensoren aus China sind heute angekommen.
Da alles funktioniert, hab ich heute noch mal 3 ESP32 in China bestellt, 3er Pack, da kostete einer 4,50
Das kann man machenEPS32, weil ich einfach für die Fenster Reed Kontakte mehr Platz brauche.
1 DHT 22 kommt da auch noch dran, dann, muss mal schauen, ob man auch einen 2. anschließen kann. Vom Erdgeschoss in der Küche geht ein Leerrohr in den Keller, falls ich da später noch mal Sat oder Lan haben wollte, daher das Leerrohr, da könnte ich jetzt einen Klingeldraht durch schrieben, und den 2. Sensor anstöpseln Dann wäre die Küche auch gleich mit erfasst, und ich brauche dort keinen Wemos D1. -
Hab noch mal ne Spezial Frage an dich.
Um zu prüfen, ob der Keller entfeuchtet wird, will ich noch per Formel das Wasser in der Luft berechnen. Vorbereitet in Excel hab ich das vorher.
Ich wollte nun unterhalb der 3 Werte in der Weboberfläche über die Script Funktion noch eine 4. Zeile hinzufügen.
Wasser in g/m3aber egal was ich unter Scripting eingebe, in der Weboberfläche erscheint keine zusätzliche Zeile.
Ich will das Wasser auch in Influx mit loggen, um zu sehen, wie viel Wasser aus den Wänden per Diffusion in die Luft gelangtIn Schritt 2, will ich alle 3 Kellerräume mal überwachen, damit ich sehe, welcher der 3 Räume der ist, der die Luftfeuchte am meisten erhöht
Die Idee ist nun, das Wasser direkt in der Script Funktion zu berechnen, und wie bei deinem Offen zu Script oben, das ganze per MQTT zu übertragen. Dann muss ich das nicht über Blocky machen
-
ah ja, ok
Schritt 1,
Beispiel soll Webgui:
unter >D muss stehen SWT2=0
vorbesetzen der Variable SWT2 mit dem Wert 0
dies unter >W eingeben
Test{m} %0SWT2%
alles unter >W erscheint auf der Webgui
Test ist dann der Text
{m} füllt auf mit Leerzeichen zwischen Text und Variablenwert
%0SWT2% ist %xxx% ist eine Variable die unter >D angelegt wurde,
0 bei Zahlen ohne Kommawert, 2 wäre mit 2 Stellen hinter dem Komma
SWT2 ist der Variablenwert selbst -
es bleibt bei den 3 Zeilen oben wie im Bild.
Folgendes hab ich aktuell zum Testen inklusive Haken oben drin stehen
>D SWT2=0 >W Ausgabe %0SWT2% ist %xxx%
Liegt es an der Firmware ? hab eine Sensors mit Scripting genommen, oder braucht man dafür noch etwas zusätzlich ? Der gleiche Code unter Scripting beim Wemos Display klappt bestens. Das ist ja das was ich nicht verstehe
Edit, Google meint es fehlt
#define USE_SCRIPT_WEB_DISPLAY
-
@berndsolar13 sagte in alte Fenstersensoren Smart machen:
ohne ist %xxx%
habe mir eine Bastel.bin gebaut wo das meiste zum spielen drin ist.
#define USE_TIMERS #define USE_SCRIPT #define USE_SCRIPT_GLOBVARS #define USE_SCRIPT_STATUS #define USE_WEBSEND_RESPONSE #define USE_SCRIPT_STATUS #define USE_SCRIPT_FULL_JSON_PARSER #define USE_SCRIPT_JSON_EXPORT #define SUPPORT_MQTT_EVENT #define USE_SML_M #define USE_SCRIPT_WEB_DISPLAY #define USE_SCRIPT_SERIAL
du fragst ja eh danach
ESP8266Berechnung :
>D ZAL1=50 ZAL2=200 ERG=0 >S ;>S jede Sekunde ;Berechnung ERG=ZAL1*ZAL2/1000 ;Ausgabe in der Variable ERG Console mit print print Ergebnis %ERG& >W Ergebnis{m} %1ERG% Wert
du rufst mit %xxx% eine Variable auf die nicht in >D aufgeführt ist,
dann wird die Zeile in >W nicht ausgeführt