Ja! So welche hab ich mir auch gekauft. Allerdings sind sie super empfindlich. Die Anschlussdrähte musst du vorsichtig zwei Zangen biegen. Bei dem leichtesten Druck auf den Glaszylinder bricht dieser. Kauf dir am besten 20stk. Ich spreche aus Erfahrung.
Beiträge von sunburstc
-
-
Welchen link? Kannst du das Bild nicht sehen?
Genau
-
Guter Tip mit Sonoff, benutze ich ja eh für die Steckdosen.
Ich werd emir wohl mal einen neuen Reedkontakt bestellen.
Weißt du ob die hier auch funktionieren?
Kann den Link nicht öffnen
-
Das entprellen ist beim Gaszähler weniger das Problem, falls er genau auf dem Impuls stehen bleibt, viel mehr kann die Zuleitung ein Problem sein. Es gibt viele unterschiedliche Faktoren die darin einspielen können, dass es zu Fehlzählungen kommt. Bei mir war es die Kellerbeleuchtung. Ein/Ausschalten der Lampe führte zu Zählungen.
+2,14,c,1,50,Gas
Die rote Zahl gibt die Entprellzeit in ms an. Mehr dazu findest du wie immer in Tasmota docs. https://tasmota.github.io/docs/Smart-Met…ral-description
In ioBroker solltest du den sonoff Adapter verwenden. Der dröselt dir das automatisch in einzelne Datenpunkte auf.
Nicht vergessen, in den Adapter Einstellungen des Sonoffadapters die 3 Häkchen zu setzen.
Hast du evtl. noch einen anderen Reedkontakt? Vielleicht ist der einfach nicht so gut?
-
Das Schaltbild erklärt doch alles. Die 10k anstatt der 4,7k ist auch völlig in Ordnung.
Falls du keinen Widerstand nutzen möchtest, dann lässt du ihn weg und aktivierst den Pullup an dem GPIO.
+2,14,c,1,50,Gas
Die rote Zahl markiert denn Schalter für Pullup oder bei 0 eben enicht.
Mit Sensor53 d1 kannst du keine Counter sondern nur SML Meter Debuggen.
Das Zählen kannst du nur ganz normal in der GUI überprüfen.
Ja, die Position ist etwas schwierig. Versuche auch den Kontakt umzudrehen. sozusagen jede Position/Seite mal ausprobieren. Dann mit etwas Schaumstoff und gutem Isolierband den Schaumstoff + Reedkontakt festkleben.
-
Ja hab ich im Howto auch gesehen und hab es dann so gemacht, was dem wohl relative gleich kommt:
Code>M 2 +1,12,s,0,9600,STROM +2,3,c,0,50,GAS 1,77070100010800ff@1000,Verbrauch,KWh,Total_In,1 1,77070100100700ff@1,Leistung,W,Power_curr,1 2,1-0:1.8.0*255(@1,Zählerstand,m³,Total_In,2 #
Ich hätte hier noch einen 10kΩ Widerstand liegen. Soll ich den pullup damit machen?
Danke Dir.
Probiere es doch erst einmal mit dem internen pullup.
Der Counter ergibt aber an pin 3 keinen Sinn.
Den solltest du eher für deinen Stromzähler nehmen. Weil das die Hardware Serial ist.
Für den Counter nimmst du besser pin 12 oder 14.
Pullup via:
+2,14,c,1,50,Gas
-
Die entsprechenden Zeilen hierzu sind in dem Howto vorhanden welches bereits verlinkt wurde. Allerdings dann beim Thema Wasserzähler.
Wenn es nur zwei Zähler gibt dann sähe es so aus:
Code>M 2 +1,12,c,0,50,Wasser +2,14,c,0,50,Gas 1,1-0:1.8.0*255(@1000,Zählerstand,L,Count,3 2,1-0:1.8.0*255(@100,Zählerstand,cbm,Count,3 #
Falls kein externer Pullup existiert:
Was diese Zeilen genau bedeuten, steht sowohl in dem HowTo als auch in den Tasmota Docs Stichwort Scripting / SML.
Bzgl. Debouncing: Das sieht bei jedem anders aus und hat ganz viele Faktoren. Bei mir gab es Stress mit den Leuchtstoffröhren im Keller. Bei anderen ist es ein nicht-isoliertes Kabel Bei anderen ist es ein Schaltnetzteil. Da muss man ausprobieren. Ich konnte den Fehler mit dem Software debouncing nicht beheben und habe mir ein HW-Debouncing gebaut.
-
Kann mir mal einer auf die Sprünge helfen?
Hallo Urmel.
In deinem Script sind mir mehrere Fehler aufgefallen:
Zwischen >M und der Anzahl der Zähler fehlt ein Leerzeichen. Es müsste so aussehen: >M 2
Ansonsten gibt es keine Kommas bei der Definition der Zähler.
Code
Alles anzeigen>D >B =>sensor53 r >M 2 +1,3,s,0,9600,Haus +2,12,s,0,9600,Waerme 1,77070100010800FF@1000,GESAMTVERBRAUCH,kWh,Gesamtverbrauch,2 1,77070100020800FF@1000,EINSPEISUNG,kWh,Einspeisung,2 1,77070100100700FF@1,VERBRAUCH,W,Aktueller Verbrauch,16 1,=h----------------- 2,77070100010800FF@1000,GESAMTVERBRAUCH Waerme,kWh,Gesamtverbrauch,2 2,77070100100700FF@1,VERBRAUCH,W,Aktueller Verbrauch Waerme,16 #
Schau mal ob es so funktioniert.
-
Die Sektion Gaszähler ist leider leer: "Infos folgen"
Ja, ich hab bisher immer vergessen ein Foto davon zu machen. Die Gasuhr BK G4 hat rechts unter den Zählerrädchen eine Vertiefung. Dort kann man ein Reedrelais hineinsetzen. Es ist hier so ziemlich egal was man nutzt. verwende bei mir ein Relais von einem Fahrradtacho.
Auf dem Bild ist dies ganz gut zu erkennen: https://www.solvimus.de/wp-content/upl…91616773209.jpg Quelle: https://www.solvimus.de/de/smart-meter…der-gaszaehler/
Die Einstellung in Tasmota ist identisch mit der für den Wasserzähler.
-
Ich habe jetzt mein Sonoff Pow R2 mit Tasmota für die PV Anlage im Betrieb wenn ich den Sonoff von Strom trenne verliert diese die gespeicherten Werte, ich kann mich erinner das man das einstellen kann das er diese nicht verliert bzw löscht. Ich weiß nur nicht mehr wo ich das gelesen habe.
Welche Werte genau? Und wie sieht dein Script aus?
-
fapo Ist normal. Flashen über USB dürfte mit verbundenen RX TX auch nicht möglich sein.
-
VU-RE Der niedrigste Wert für die Teleperiod ist 10s. Geringer geht es nicht. Es ist ja auch nicht einmal gesagt, dass die Zählerwerte überhaupt sekündlich ausgelesen wird.
Für einen einzelnen Wert kann man gerne das hier beschriebene ausprobieren: RE: D0 Zähler SML auslesen mit Tasmota
-
Hallo!
Es gab mal eine Möglichkeit, ob diese noch besteht weiß ich allerdings nicht.
Ich glaube das ging, indem man die letzte Ziffer einer Zeile im Descriptor mit 16 addierst.
Code1,1-0:1.8.0*255(@1,Total Verbrauch,KWh,Total_in,4 zu: 1,1-0:1.8.0*255(@1,Total Verbrauch,KWh,Total_in,20
Dann müsste bei jeder Aktualisierung des Wertes eine MQTT Nachricht gesendet werden.
Probiere das mal aus.
Grüße!
-
Eigentlich hast du mit der obis Variante schon die parität 7e1 ascii soweit ich weiß.
Allerdings kommt dort nichts ordentliches bei dir heraus. Da kann gemu2015 mehr zu sagen.
Nutze mal den sonoff Adapter in iobroker.
In den Einstellungen alle Haken zum generieren von Zuständen setzen(3stk).
Evtl. Wenn du sowohl mqtt als auch den sonoff Adapter laufen lässt. Musst du den Port bei einem der beiden ändern.
-
Ich habe ein ganz komisches Verhalten mit meinem Script die Variable die im script als letztes definiert wird gibt falsche werte aus wenn ich die werte in der Konsole per Hand auf 0 stelle wird es auch übernommen. Nur wenn ich ein neustart mache werden die werde wieder auf falsche werte gestellt und das passiert nur bei den Variablen die ganz unten stehen wenn ich diese nach oben kopiere werden andere Variablen falsch ausgegeben. Ich glaube es liegt an zu wenig speicher, wie könnte ich das prüfen ob es am speicher liegt?
Jenachdem was ganz unten bei >D steht verschiebt sich der flasche Wert. Ahja und Tasmota ist auf einer blitzwolf shp2 installiert ist halt speicher mäßig sehr begrenzt.
Das sind meine Variablen.
Code
Alles anzeigen>D v=0 e=0 hr=0 p:HT_sm=0 p:NT_sm=0 p:HT_sdv=0 p:NT_sdv=0 HT_sd=0 NT_sd=0 week=0 p:HT_smw=0 p:NT_smw=0 p:HT_sdwv=0 p:NT_sdwv=0 HT_sdw=0 NT_sdw=0 md=0 p:HT_sma=0 p:NT_sma=0 p:HT_smnv=0 p:NT_smnv=0 HT_smn=0 NT_smn=0 yr=0 p:HT_sya=0 p:NT_sya=0 p:HT_synv=0 p:NT_synv=0 HT_syn=0 NT_syn=0
Evtl. Hast du auch zuviele Variablen. Schau mal hier: https://tasmota.github.io/docs/Scripting…nit-error-codes Da steht mehr dazu.
So Fehler können allerdings auch durch irgendwelche Zeichen Fehler entstehen. Also falls du irgendwo vergessen hast eine Klammer zu schließen z.B. Also wirklich mal das ganze Script nach irgendwelchen Schreibfehlern etc. durchsuchen.
VU-RE hat zum Beispiel in Zeile 111-114 genau so einen Fehler.
-
Du kannst beide abfragen zusammenfassen:
Code
Alles anzeigen>S ;Tagesverbrauch_Strom hr=hours if chg[hr]>0 and hr==0 and v2>0 then sm=v2 svars endif if upsecs%tper==0{ sd=v2-sm } ;Tagesverbrauch_Gas hr=hours if chg[hr]>0 and hr==0 and sgk>0 then gm=sgk svars endif if upsecs%tper==0{ gd=v3*sgf*sgz-gm }
zu:
Code
Alles anzeigen>S ;Tagesverbrauch_Strom und GAS hr=hours if chg[hr]>0 and hr==0 and v2>0 { sm=v2 svars ; benötigst du dieses IF überhaupt? if sgk>0 { gm=sgk svars } } if upsecs%tper==0 { sd=v2-sm gd=v3*sgf*sgz-gm }
Ich blicke nicht ganz durch deine Variablen durch. Aber im Prinzip packst du folgendes dort noch herein:
Um 0 Uhr jede Nacht muss der aktuelle Gaszählerstand gespeichert werden.
Nur für das Thema GAS könnte das also so aussehen:
Code
Alles anzeigen>D ; GAS Mitternacht p:GM=0 ; GAS Vortag p:GV=0 ; GAS Täglich GT=0 ;ZählerstandGAS v3=0 >T v3=GAS#Total_In >S hr=hours if chg[hr]>0 and hr==0 and v2>0 { ; Gas Vortag mit dem GAS-Täglich überschreiben GV=GT ; Aktuellen Zählerstand in Gas Mitternacht speichern GM=v3 ;Abspeichern der P Variablen svars } if upsecs%5==0 and v2>0 { GT=v3-GM ; Hier könntest du zusätzlich mit den Variablen GV und GT deine kWh Rechnung ausführen. }
Es gibt ein paar Dinge zu beachten.
Du solltest nicht unnötig oft svars ausführen. Jeder Schreibvorgang in den Flash lässt ihn "altern".
Deshalb solltest du auch Berechnungen, die du zusammenfassen kannst zusammenfassen und am ende nur 1x svars ausführen.
Wie du siehst, ist die GT Variable keine p Variable, weil sie alle 5 Sek überschrieben wird. Diese wird also nur im Arbeitsspeicher gehalten.
Wenn du deine Firmware mit diesen Define erstellst, kannst du dir die >T Sektion sparen und direkt auf die Variablen im >M Descriptor zugreifen.
#define USE_SML_SCRIPT_CMD
Bedeutet, statt sich die Werte in der >T Sektion auf eine zusätzliche Variable zu speichern:
Kannst du direkt via:
sml[X]
auf den Wert zugreifen.
X Stellt hierbei die X-te Zeile im Descriptor dar. Bei dir für GAS:
Code>M 2 +1,3,s,16,9600,SML +2,4,c,1,50,GAS 1,77070100010800ff@1000,Verbrauch,KWh,DJ_TPWRIN,4 1,77070100100700ff@1,Akt. Verbrauch,W,DJ_TPWRCURR,0 2,1-0:1.8.0*255(@100,Zählerstand,m³,Total_In,2 ;<<<<<<<<<<<<<< DIESE #
Lässt sich dann so verwenden:
z.B. :
Codeif upsecs%5==0 and sml[1]>0 { GT=sml[3]-GM ; Hier könntest du zusätzlich mit den Variablen GV und GT deine kWh Rechnung ausführen. }
Ich hoffe das hat dich ein wenig weiter gebracht.
Weiterhin empfehle ich die Tasmota Docs: https://tasmota.github.io/docs/Scripting-Language/
Und den dort zu findenden Script Editor: https://www.dropbox.com/sh/0us18ohui4c…E_MPFGmbma?dl=0
-
-
xls +1,12,M,0,9600,LK13BE,13,30,2F3F210D0A,063035310D0A
Wie sehen die Roh-Daten denn bei SML aus? -
Anscheinend sendet er im Modbus Protokoll. Wie seltsam.
Ich weiß nicht ob das klappt. Schau mal ob du etwas bekommst wenn du folgendes in den Descriptor einträgst.
Code>M 1 +1,12,M,0,9600,LK13BE,13,30,2F3F210D0A,063035310D0A 1,1-0:1.8.0*255(@1,Total Verbrauch,KWh,Total_in,4 #
Dann müsste er ja zumindest den Total Verbrauch im Hauptmenü anzeigen. Sofern du sensor53 d0 Ein bzw. Ausgeschaltet hast.
-
xls Also mit
Hast du keine Ergebnisse bekommen?