===== MQTT Gaszähler / Verbrauchsmessung eines BK-G4 Gaszählers ===== {{:public:gaszaehler_3.jpg?400|}} {{:public:gaszaehler_1.jpg?378|}}\\ \\ === Beschreibung === Dieser MQTT-Gaszähler (Ebay Artikel: [[https://www.ebay.de/itm/126305909523|126305909523]]) dient zur Erfassung der umlaufenden, magnetischen Kupplung eines BK-G4 Balgengaszählers und deren Zählung/Übermittlung an eine Hausautomation per MQTT Protokoll.\\ Demzufolge können damit alle Systeme, welche dieses Protokoll unterstützen bedient werden wie z.B. FHEM, ioBroker, OpenHAB, Home Assistant, etc.\\ \\ === Bausatz === Wer einen Bausatz (Ebay Artikel: [[https://www.ebay.de/itm/126307799487|126307799487]]) gekauft hat, bitte erstmal **[[public:Gaszaehler_Bausatz|hier]]** weiterlesen und später an diese Stelle zurück kehren.\\ \\ === Montage === Die Montage in sehr einfach. Die Messeinheit (Bild 1) wird einfach per mitgelieferter M6 Schraube an der rechten Seite des Gaszählers befestigt. Dort sollte bereits eine Vorrichtung mit Loch vorhanden sein.\\ Dabei gleitet die Erhöhung der Messeinheit in die vorhandene Mulde unter dem Zählwerk. Der Sensor (Reed-Kontakt) hat durch den vorgegebenen Gehäuse-Sitz eine optimale Position zur Erfassung der Umläufe.\\ Bei Zählwerken mit 0,001 m³ Angaben wird bei der 100er Nullung (Null-Durchlauf), also beim Erreichen von xxxxx,xx0 ein Umlauf gezählt und in TASMOTA die Angabe neben Zähler1 um 1 erhöht.\\ Angabe auf dem Gaszähler: ** 1 imp = 0,01 m³**\\ Beim **MQTT-Gaszähler V2**, kann der Schlitten horizontal verändert werden. Somit können Gaszähler mit **1 imp = 0,1 m³** ebenfalls erfasst werden, wenn der Magnet an einer anderen Walze verbaut ist.\\ \\ :!: **In Bild 2 ist die Messeinheit fertig montiert zu sehen. Ein Stromanschluß sowie ein USB-Netzteil (z.B. Smartphone Ladegerät) in der Nähe sind erforderlich!**\\ \\ === Installation / Konfiguration === Bitte TASMOTA nicht mit einer Standard Firmware updaten!
Die installierte Firmware enthält das Scripting Modul, welches in Standard Versionen nicht enthalten ist. Siehe am Ende dieser Wiki Seite, wie man ein Update oder eine Neuinstallation durchführt.
\\ :!: Nachfolgende Konfiguration ist bereits auf der gekauften Messeinheit enthalten. Lediglich die Einbindung ins WLAN die MQTT Konfiguration und die Programmierung der Hausautomation muss durchgeführt werden.\\ :!: Bausatz Käufer müssen die komplette Konfiguration durcharbeiten.\\ \\ Auf der Messeinheit (D1 Wemos Mini) befindet sich die Software TASMOTA, welche folgendermaßen zu konfigurieren ist:\\ \\ === WLAN === Die Einbindung in das lokale Netzwerk wird folgendermaßen durchgeführt.\\ Nach dem Einstecken der Stromversorgung meldet sich das Gerät mit der SSID **Gaszahler-XXXX** (beim Bausatz tasmota-YYYYYY-XXXX), wobei das XXXX für eine Zahlenfolge und YYYYYY für alphanumerisch steht.\\ Nach dem Verbinden wird man automatisch auf eine Webseite mit der IP: 192.168.4.1 weitergeleitet. Dort bitte das **lokale WLAN** wählen und das **Passwort** eingeben (am besten mit dem Haken sichtbar machen beim Eingeben).\\ \\ {{:public:wlan1.jpg?300|}} \\ \\ Kurz nach dem **Speichern** meldet sich das Webinterface mit der über DHCP bezogenen IP-Adresse.\\ Ist dies nicht der Fall, bitte im lokalen Router nach dem Gerät suchen und die IP-Adresse ausfindig machen.\\ {{:public:wlan2.jpg?300|}} \\ Der MQTT-Gaszähler ist nun über diese Adresse mittels Browser errereichbar.\\ \\ \\ \\ ===Gerät konfigurieren=== In den Einstellungen ist als Gerätetyp **Generic** auszuwählen, danach [Speichern] und anschließend an selber Stelle nochmal **D5 GPIO14** mit Auswahl **Counter** **1** und wieder [Speichern].\\ :!: Ausgelieferte MQTT-Gaszähler mit Rechnungsnummer vor **2023-0094 (27.01.2023)** wurden mit Anschluß an D7 gefertigt. Käufer mit Bausatz müssen den GPIO einstellen, welcher verlötet wurde!\\ {{:public:gaszaehler_7.jpg?400|}}\\ \\ **MQTT konfigurieren**\\ Bei **Host** ist die IP-Adresse der Hausautomation (FHEM, ioBroker, HomeAssistant,etc.) einzutragen.\\ Falls erforderlich auch Benutzername/Passwort angeben. Unter Topic sollte man den Eintrag in **Gaszaehler** ändern.\\ {{:public:gaszaehler_8.jpg?400|}}\\ \\ **Sonstigher Konfiguration**\\ Hier muss MQTT aktiviert werden und man sollte einen friendly Name auswählen wie z.B. **Gaszähler**.\\ {{:public:gaszaehler_9.jpg?400|}}\\ \\ === Konsolen Kommandos === Damit nicht zu viele Impulse gezählt werden schafft die Definition eines Timeouts Abhilfe. Mittels **CounterDebounce 500** wird der Wert auf 500 Millisekunden gesetzt.\\ **Timezone 99** Zeitzone Europa/Berlin. \\ **TelePeriod 60** sogt dafür, dass nur einmal alle 60 Sekunden Werte an die Hausautomation gesendet werden.\\ **Sensor53 c1 0** bedeutet, dass der Zähler auf NULL gesetzt wird. Diesen Wert könnte man auch dafür benutzen um den aktuellen Zählerstand abzubilden. Im Konsolen Script gibt es aber auch eine Variable namens **gasinit** um dies zu realisieren.\\ **SaveData 60** bedeutet, dass die Werte alle 60 Sekunden gespeichert werden. Bei SaveData 0 würden die Einstellungen erst beim Neustart gespeichert werden.\\ Timezone 99 TelePeriod 60 CounterDebounce 500 Sensor53 c1 0 SaveData 60 Falls sich mit o.g. **Debounce** Einstellungen das Prellen (zuviel zählen) nicht verbessert, dann bitte folgende Einstellungen versuchen oder damit rumspielen, bis es besser wird.\\ Low/High sind lediglich Feinjustierungen. Diese kann man zunächst weglassen und sich dem Hauptwert erstmal annähern. Ggf. weiter erhöhen auf 2500, 3000, etc.\\ CounterDebounce 1000 CounterDebounceLow 500 CounterDebounceHigh 500 === Konsolen Script === In folgendem Script (Werkzeuge/Konsolen > Script konfigurieren) sind zwei Variablen zu ersetzen. Zum Einen der Gaspreis und zum Anderen der aktuelle Zählerstand auf dem Gaszähler (falls Sensor53 c1 xxx nicht dazu verwendet wurde).\\ Anhand dessen werden die Kosten berechnet und der aktuelle Zählerstand angezeigt.\\ * gp (Gaspreis in Cent) * gasinit (Zählerstand bei Montage) Möchte man mehr Werte als im Script vorgegeben an seine Hausautomation übermitteln, kann man die Zeilen beginnend mit **=>Publish** ergänzen.\\ z.B. würde **=>Publish tele/%topic%/main/gasprice %3gp%** den Gaspreis mit übermitteln. Für **json** Abfragen, müsste auch die Zeile mit den geschweiften Klammern {} ergänzt werden.\\ >D p:m1=0 p:g1=0 p:g2=0 p:month1=0 p:month2=0 p:month3=0 p:gesamt=0 c1=0 s1=0 h1=0 hkw1=0 gkw1=0 gkw2=0 mkw1=0 mkw2=0 mkw3=0 mkwgs=0 skw1=0 hgp=0 g1gp=0 g2gp=0 m1gp=0 m2gp=0 m3gp=0 gsgp=0 hr=0 dy=0 zu=0.9617 br=11.233 gp=17.956 gasinit=0.0 gastotal=0 >B =>sensor53 l255 >S h1=s1-m1 hkw1=h1*br*zu hgp=(hkw1*gp)/100 gkw1=g1*br*zu gkw2=g2*br*zu mkw1=month1*br*zu mkw2=month2*br*zu mkw3=month3*br*zu mkwgs=gesamt*br*zu g1gp=(gkw1*gp)/100 g2gp=(gkw2*gp)/100 m1gp=(mkw1*gp)/100 m2gp=(mkw2*gp)/100 m3gp=(mkw3*gp)/100 gsgp=(mkwgs*gp)/100 skw1=s1*br*zu hr=hours dy=day if chg[hr]>0 and hr==0 then m1=s1 g2=g1 g1=h1 month1=month1+h1 gesamt=gesamt+h1 if chg[dy]<2 and dy==1 then month3=month2 month2=month1 month1=0 endif svars endif if upsecs%tper==0{ =>Publish tasmota/%topic%/main/td_m3 %2h1% =>Publish tele/%topic%/main/td_kwh %2hkw1% =>Publish tele/%topic%/main/yd_m3 %2g1% =>Publish tele/%topic%/main/yd_kwh %2gkw1% =>Publish tele/%topic%/main/dbyd_m3 %2g2% =>Publish tele/%topic%/main/dbyd_kwh %2gkw2% =>Publish tele/%topic%/main/value %2s1% =>Publish tele/%topic%/main/gastotal %2gastotal% =>Publish tele/%topic%/json {"gastotal": "%2gastotal%", "value": "%2s1%", "today_m3": "%2h1%", "today_kwh": "%2hkw1%", "yesterday_m3": "%2g1%", "yesterday_kwh": "%2gkw1%", "db_yesterday_m3": "%2g2%", "db_yesterday_kwh": "%2gkw2%"} } >T s1=Counter#C1/100 c1=Counter#C1 gastotal=(c1/100)+gasinit >W GAS gezählt: {m} %3s1% m³ Zählerstand: {m} %gastotal% m³ ============ Zustandszahl: {m} %zu% Brennwert: {m} %br% kWh/m³ Gaspreis: {m} %gp% Cent/kWh ============ Verbrauch: --------------------- Heute: {m} %2h1% m³ | %2hkw1% kWh Kosten: {m} %2hgp% € --------------------- Gestern: {m} %2g1% m³ | %2gkw1% kWh Kosten: {m} %2g1gp% € --------------------- Vorgestern: {m} %2g2% m³ | %2gkw2% kWh Kosten: {m} %2g2gp% € --------------------- Aktueller Monat: {m} %2month1% m³ | %2m1gp% € Letzter Monat: {m} %2month2% m³ | %2m2gp% € Vorletzter Monat: {m} %2month3% m³ | %2m3gp% € Gesamt: {m} %2gesamt% m³ | %2gsgp% € # Anschließend sollte es auf der Startseite in etwa so aussehen:\\ {{:public:gaszaehler_11.jpg?400|}} \\ \\ :!: Ab Tasmota 13.4.0.4 wird im Webinterface der Button **"Werkzeuge"** anstelle von **"Konsolen"** verwendet.\\ \\ === Werte einstellen/korrigieren === Will man die Werte in der Weboberfläche neu justieren, kann man in der **Konsole** folgende Kommandos dazu verwenden.\\ Dabei lautet die Syntax folgendermaßen:\\ script >= Beispiel: Der Verbrauch von gestern soll auf 5.65 m³ korrigiert werden. Dafür wird die Variable **g1** benötigt.\\ Somit wird in der Konsole folgendes Kommando verwendet:\\ script >g1=5.65 Variablen Übersicht: g1 = Verbauch gestern in m³ g2 = Verbauch vorgestern in m³ month1 = Verbauch aktueller Monat in m³ month2 = Verbauch letzter Monat in m³ month3 = Verbauch vorletzter Monat in m³ gesamt = gesamter Verbrauch in m³ Das der Verbrauch **heute** wird anhand der Zählungen berechnet und kann dementsprechend nicht korrigiert werden. Man muss also einen Tag warten und dann den Verbrauch für **gestern** korrigieren.\\ \\ \\ === Gezählter Wert (Zähler1) auf 0 (Null) setzen === Um den bisher gezählten Wert zu resetten, also auf NULL zu setzen wird folgendes Kommando verwendet: sensor53 c1 0 ===== Konfiguration in FHEM ===== In FHEM ist das einmalige Anlegen eines Brokers erforderlich.\\ define myBroker MQTT2_SERVER 1883 global Anschließend sollte sich der Gaszähler in FHEM nach kurzer Zeit folgendermaßen, aber mit abweichender Adresse (4F9216) melden (autocreate muss aktiviert sein):\\ {{:public:gaszaehler_10.jpg?200|}} \\ \\ Zusätzlich sind noch folgende Attribute von Vorteil.\\ attr MQTT2_DVES_4F9216 alias Gaszähler attr MQTT2_DVES_4F9216 group Gas attr MQTT2_DVES_4F9216 icon gasmeter2 attr MQTT2_DVES_4F9216 stateFormat {ReadingsVal($name,"LWT","") eq "Offline" ? "absent" : ReadingsVal($name,"gastotal","") . " m³"} \\ === Optionale Konfiguration === Ich habe für mich noch folgende Konfigurationen vorgenommen:\\ \\ Zählerstand der letzten Abrechnung (vom 02.12.2022):\\ defmod GasZaehlerStandLetzteAbrechnung dummy attr GasZaehlerStandLetzteAbrechnung alias Gaszähler_20221202 attr GasZaehlerStandLetzteAbrechnung group Gas attr GasZaehlerStandLetzteAbrechnung room 99_Zähler attr GasZaehlerStandLetzteAbrechnung sortby 1 Verbrauch bei letzter Abrechnung:\\ defmod GasVerbrauchLetzteAbrechung dummy attr GasVerbrauchLetzteAbrechung alias GasVerbrauch_20221202 attr GasVerbrauchLetzteAbrechung group Gas attr GasVerbrauchLetzteAbrechung room 99_Zähler attr GasVerbrauchLetzteAbrechung sortby 1 Diesjähriger Verbauch:\\ defmod GasVerbrauch dummy attr GasVerbrauch group Gas attr GasVerbrauch room 99_Zähler Verbrauch pro Stunden:\\ defmod GasHourCounter dummy attr GasHourCounter group Gas attr GasHourCounter room 99_Zähler attr GasHourCounter userReadings lastgastotal { ReadingsNum("MQTT2_DVES_502BA8","gastotal",0) } Verbrauch heute:\\ defmod GasVerbrauch_Heute dummy attr GasVerbrauch_Heute group Gas attr GasVerbrauch_Heute room 99_Zähler Verbrauch gestern:\\ defmod GasVerbrauch_Gestern dummy attr GasVerbrauch_Gestern group Gas attr GasVerbrauch_Gestern room 99_Zähler Verbrauch Vorgestern:\\ defmod GasVerbrauch_Vorgestern dummy attr GasVerbrauch_Vorgestern group Gas attr GasVerbrauch_Vorgestern room 99_Zähler DOIF für Reset GasHourCounter:\\ defmod ResetGasHourCounter DOIF ([:00]) (set GasHourCounter 0) attr ResetGasHourCounter do always DOIF für das Update:\\ defmod GasVerbrauchNoti notify MQTT2_DVES_4F9216:gastotal.* {\ my $Zaehlerstand=round(ReadingsNum("MQTT2_DVES_4F9216","gastotal","0"),0);;\ my $ZaehlerStandLetzteAbrechnung=round(ReadingsNum("GasZaehlerStandLetzteAbrechnung","state","0"),0);;\ my $Diff=$Zaehlerstand-$ZaehlerStandLetzteAbrechnung;;\ fhem("set GasVerbrauch $Diff m³");;\ my $gas_db_yesterday=ReadingsNum("MQTT2_DVES_4F9216","db_yesterday_m3","0");;\ my $gas_yesterday=ReadingsNum("MQTT2_DVES_4F9216","yesterday_m3","0");;\ my $gas_today=ReadingsNum("MQTT2_DVES_4F9216","today_m3","0");;\ fhem("set GasVerbrauch_Vorgestern $gas_db_yesterday m³");;\ fhem("set GasVerbrauch_Gestern $gas_yesterday m³");;\ fhem("set GasVerbrauch_Heute $gas_today m³");;\ if (ReadingsNum("MQTT2_DVES_4F9216","gastotal","0") > ReadingsNum("GasHourCounter","lastgastotal","0")) {\ my $hourcounter=ReadingsNum("GasHourCounter","state","0")+1;;\ fhem("set GasHourCounter $hourcounter");;\ }\ } Plot: SRV_Gaszaehler.gplot (dblog) \\ # Created by FHEM/98_SVG.pm, 2023-01-06 15:08:54 set terminal png transparent size crop set output '.png' set xdata time set timefmt "%Y-%m-%d_%H:%M:%S" set xlabel " " set title '' set ytics set y2tics set grid ytics set ylabel "Gasverbrauch m³/h" set y2label "Verbrauch Anno m³/a" set yrange [0:0.15] set y2range [0:400] #DBLOG GasHourCounter:state:::$val=$val/100 #DBLOG GasVerbrauch:state:: plot "" using 1:2 axes x1y1 title 'aktueller Verbrauch m³' ls l0fill lw 1 with fsteps,\ "" using 1:2 axes x1y2 title 'Gesamt Verbrauch m³/a' ls l2dot lw 1 with steps In FHEM sieht das dann ungefähr so aus:\\ {{:public:gaszaehler_12.jpg}} \\ \\ ===== Konfiguration im ioBroker ===== Dazu bitte das Video von Marco Mussek ab Minute 2:25 befolgen.\\ \\ \\ \\ Link zur GitHub Seite: [[https://github.com/msussek/arduino/tree/master/pulsecounter]]\\ \\ So sollte es ungefähr aussehen:\\ {{:public:iobroker.png?550|}} \\ ===== Konfiguration im Home Assistant ===== === MQTT-Broker Installation === Um den Gaszähler im Home Assistant zu integrieren, muss zunächst ein MQTT Broker (Mosquitto) installiert werden.\\ - Navigiere im Home Assistant zum **Add-on Store** (Einstellungen > Add-ons > ADD-ON Store) - Suche nach **Mosquitto**, dann doppelklicken und INSTALLIEREN > STARTEN - Im eigenen Profil den **Erweiterten Modus** aktivieren - Unter Einstellungen > Personen > TAB Benutzer > einen neuen Benutzer namens "mqtt-user" mit Passwort erstellen. - Einstellungen > Geräte und Dienste > MQTT > Konfigurieren > Bestätigen, dass die Verbindung mit dem Broker hergestellt werden soll > (Mosquitto Broker MQTT erscheint) - Auf dem Mosquitto Broker "Konfigurieren" klicken > MQTT Neu Konfigurieren > Benutzer "homeassistant" durch zuvor erstellten Benutzer "mqtt-user" mit Passwort ersetzen. - Ggf. den MQTT Broker und auch TASMOTA nochmal durchstarten. Oben genannte Schritte werden auch in diesem Video von "MeinedigitaleWelt" erklärt.\\ \\ \\ \\ === Gaszähler einbinden === - Nach dem der MQTT-Broker aktiv ist, muss in TASMOTA die IP sowie user/password in die MQTT-Konfiguration eingetragen werden - Anschließend erscheint im Home Assistent ein neues Gerät namens "Tasmota" unter "Integrationen" - Dort auf "Konfigurieren" klicken und als Bereich "Gaszähler" eingeben. Es erscheint 1 Gerät und 10 Entitäten - Falls dies nicht der Fall ist, bitte in der TASMOTA Konsole "SetOption19 0" eingeben. \\ Oben genannte Schritte werden auch in diesem Video von "MeinedigitaleWelt" erklärt.\\ \\ \\ \\ Dadurch werden aber nur die grundsätzlichen Discovery Werte übertragen.\\ Um den Zählerstand und die anderen Werte zu erhalten ist folgende Ergänzung in der Datei **configuration.yaml** erforderlich. (File Editor vorher zum Editieren über Add-ons installieren)\\ \\ Die Installation wird auch in diesem Video von "Smartzeug" erklärt.\\ \\ \\ mqtt: sensor: - name: "Zählerstand" unique_id: sensor.gaszaehler_zaehlerstand state_topic: "tele/Gaszaehler/json" value_template: '{{ value_json.gastotal }}' unit_of_measurement: 'm³' payload_available: "Online" payload_not_available: "Offline" device_class: gas state_class: "total_increasing" - name: "Zählung seit Nullung" unique_id: sensor.gaszaehler_zahlung_seit_nullung state_topic: "tele/Gaszaehler/json" value_template: '{{ value_json.value }}' unit_of_measurement: 'm³' payload_available: "Online" payload_not_available: "Offline" device_class: gas state_class: "total_increasing" - name: "Verbrauch Volumen heute" unique_id: sensor.gaszaehler_verbrauch_volumen_heute state_topic: "tele/Gaszaehler/json" value_template: '{{ value_json.today_m3 }}' unit_of_measurement: 'm³' payload_available: "Online" payload_not_available: "Offline" device_class: gas state_class: "total_increasing" - name: "Verbrauch Energie heute" unique_id: sensor.gaszaehler_verbrauch_energie_heute state_topic: "tele/Gaszaehler/json" value_template: '{{ value_json.today_kwh }}' unit_of_measurement: 'kWh' payload_available: "Online" payload_not_available: "Offline" device_class: energy state_class: "total_increasing" - name: "Verbrauch Volumen gestern" unique_id: sensor.gaszaehler_verbrauch_volumen_gestern state_topic: "tele/Gaszaehler/json" value_template: '{{ value_json.yesterday_m3 }}' unit_of_measurement: 'm³' payload_available: "Online" payload_not_available: "Offline" device_class: gas state_class: "total_increasing" - name: "Verbrauch Energie gestern" unique_id: sensor.gaszaehler_verbrauch_energie_gestern state_topic: "tele/Gaszaehler/json" value_template: '{{ value_json.yesterday_kwh }}' unit_of_measurement: 'kWh' payload_available: "Online" payload_not_available: "Offline" device_class: energy state_class: "total_increasing" - name: "Verbrauch Volumen vorgestern" unique_id: sensor.gaszaehler_verbrauch_volumen_vorgestern state_topic: "tele/Gaszaehler/json" value_template: '{{ value_json.db_yesterday_m3 }}' unit_of_measurement: 'm³' payload_available: "Online" payload_not_available: "Offline" device_class: gas state_class: "total_increasing" - name: "Verbrauch Energie vorgestern" unique_id: sensor.gaszaehler_verbrauch_energie_vorgestern state_topic: "tele/Gaszaehler/json" value_template: '{{ value_json.db_yesterday_kwh }}' unit_of_measurement: 'kWh' payload_available: "Online" payload_not_available: "Offline" device_class: energy state_class: "total_increasing" Anschließend erscheinen die Entities und können in das Dashboard übernommen werden.\\ \\ {{:public:gaszaehler_14.jpg?400|}} \\ \\ ===== Neue TASMOTA Firmware für den MQTT Gaszähler ===== Neue TASMOTA Releases stehen zum Download unter folgendem Link zur Verfügung (Passwort = 10 stellige, aphanumerische Nummer auf dem Gerätelabel **"unterste Zeile"**)\\ [[https://nextcloud.gorjup.de/nextcloud/index.php/s/T4C9CWWrqWYA7rT|Download TASMOTA Releases für Gaszähler]] Möchte man eine andere TASMOTA Firmware flashen, dann ist darauf zu achten, dass Scripting integriert ist und muss demzufolge meistens selbst kompiliert werden, da es im Standard nicht enthalten ist.\\ Dafür sind vor dem Kompilieren folgende Einstellungen in der Datei **my_user_config.h** notwendig:\\ \\ Anleitung Online Compiler (GitHub Account erforderlich): [[https://www.youtube.com/watch?v=WashxTcHiDc]] \\ \\ #undef USE_TIMERS #undef USE_TIMERS_WEB #undef USE_DOMOTICZ #undef USE_ARDUINO_OTA #undef USE_KNX #undef USE_KNX_WEB_MENU #undef USE_ENERGY_SENSOR #undef USE_EMULATION #undef USE_EMULATION_HUE #undef USE_EMULATION_WEMO #undef USE_SML_M #undef DEBUG_ESP_CORE #undef DEBUG_ESP_WIFI #undef USE_RULES #undef APP_TIMEZONE #define APP_TIMEZONE 99 #undef MY_LANGUAGE #define MY_LANGUAGE de_DE #ifndef USE_SCRIPT #define USE_SCRIPT #define USE_SCRIPT_WEB_DISPLAY #endif Es gibt zwar bzgl. Home Assistant einige Parameter, die man setzen kann, aber MQTT benötigt diese Parameter nicht. Zudem ist seit der Version 13.4.x nicht mehr ausreichend Platz im Image um dies mit einzukompilieren. #define USE_HOME_ASSISTANT #define HOME_ASSISTANT_DISCOVERY_ENABLE 1 Kommando zum Kompilieren: platformio run -e tasmota Das .bin file steht dann unter: **build_output > firmware > tasmota.bin** zum Download bereit.\\ \\ === Online Kompilieren === GitHub Compile your Build: [[https://tasmota.github.io/docs/Compile-your-build/]] \\ GitPod (Easy-Compiler): https://tasmota.github.io/docs/Gitpod/ \\ GitHub Login: [[https://github.com/login]] \\ ===== Abfrage per Browser / JSON ===== Will man die TASMOTA API verwenden und Werte in Form von **JSON** Ausgaben erhalten, kann man folgenden URL'S verwenden:\\ Dabei ist die IP-Adresse des MQTT-Gaszählers.\\ \\ ^ URL ^ Bezeichnung ^ | [[http:///cm?cmnd=status%200]] | Tasmota Parameter | | [[http:///cm?cmnd=status%208]] | Zähler/Counter | \\ \\ ===== Troubleshooting ===== === Es wurde eine Standard TASMOTA Firmware auf den MQTT-Gaszähler geflashed/geupdated === Solange kein blank_1MB.bin Image geflashed wurde, sind die Einstellungen noch vorhanden, aber das Script funktioniert nicht mehr.\\ In diesem Fall muss zuerst die **tasmota-minimal_xxx.bin** Firmware und anschließend wieder die ** scripting_tasmota_xxx.bin** Firmware über das Webinterface geflashed werden. (Siehe [[http://wiki.gorjup.de/doku.php?id=public:gaszaehler#neue_tasmota_firmware_fuer_den_mqtt_gaszaehler|Download TASMOTA Release]]).\\ \\ \\ === MQTT-Gaszähler meldet sich nicht mit seiner WLAN/SSID === Bitte prüfen, ob das 5V Stromkabel richtig tief eingesteckt wurde. Es kann sein, dass das Kabel nicht 100% Kontakt mit dem D1 Wemos Mini im inneren des Gehäuses hat.\\ Dies passiert aber normalerweise nur, wenn nicht das mitgelieferte Kabel verwendet wird und dieses einen dicken Schaft oder zu kurzen Einschub hat.\\ Im Zweifelsfall bitte den seitlichen Deckel öffnen, den D1 Wemos Mini **VORSICHTIG** mit einer kleinen Zange herausziehen und nochmal das Kabel einstecken. Wenn er sich immer noch nicht meldet, scheint die TASMOTA Software nicht geflashed oder korrupt zu sein.\\ Es kann auch sein, dass bei der WLAN Verbindung ein falsches Passwort eingegeben wurde und das Gerät jetzt permanent versucht sich mit falschem Passwort zu verbinden.\\ In diesem Fall muss das Gerät neu geflashed werden. Zuerst mit dem **blank_1MB.bin** und anschließend mit der **scripting_tasmota_xxx.bin**. (Siehe [[http://wiki.gorjup.de/doku.php?id=public:gaszaehler#neue_tasmota_firmware_fuer_den_mqtt_gaszaehler|Download TASMOTA Release]]).\\ Danach muss eine komplette Neukonfiguration gemäß dieser Wiki Anleitung durchgeführt werden.\\ \\ \\ === MQTT-Gaszähler wird am USB-Port nicht erkannt === In diesem Fall handelt es sich bei dem verwendeten Kabel evtl. nur um ein reines Stromkabel und nicht um ein Datenkabel. Bitte ein anderes Micro-USB-Kabel verwenden.\\ Meistens ist beim Einstecken des MQTT-Gaszählers in den Computer-USB Port bei Verwendung eines Datenkabels ein Windows-Sound zu hören (Windows 10 oder höher).\\ \\ \\ === MQTT-Gaszähler verliert nach einigen Stunden/Tagen alle Einstellungen === Bitte eine erneute Konfiguration wie oben beschrieben vornehmen und über das Webinterface einen "Neustart" ausführen. Beim Neustart werden alle Daten nochmal im D1-Mini ESP resetfest gespeichert. Zusätzlich bitte den korrekten Sitz des USB-Kabels nochmal kontrollieren und ggf. auch das USB-Netzteil tauschen. \\ \\ === MQTT-Gaszähler zählt nicht === Falls der Zähler nicht funktioniert, dann bitte vom Gaszähler abschrauben und mit einem kleinen Magneten (z.B. Kühlschrankmagnet) quer über den Sensor (Reedkontakt) streichen.\\ Wenn der Zähler dann hochzählt, aber nicht im eingebauten Zustand, dann bestehen folgende Möglichkeiten:\\ \\ * **Der Gaszähler hat keinen Magneten** __In diesem Fall funktioniert diese Technik per Reedkontakt nicht.__\\ Laut Erfahrung trifft dies z.B. für das Gaszähler Modell **BK-G4M von Honeywell** zu.\\ \\ * **Der Magnet am Zählwerk ist nicht stark genug, oder zuweit vom Reedkontakt entfernt** __In diesem Fall hilft oftmals folgende Veränderung:__ \\ Den Reedkontakt vorsichtig aus dem Sitz heben und ggf. mit etwas Papier, Klebeband oder Knetmasse unterfüttern.\\ Dies sogt dafür, dass der Reedkontakt etwas weiter in die Mulde des Gaszählers hinein ragt und somit den vorbeilaufenden Magneten doch noch erfassen kann.\\ Laut Erfahrung trifft dies manchmal beim Gaszähler Modell **BK-G4** zu.\\ \\ {{:public:gaszaehler_15.jpg?400|}} \\ \\ === MQTT-Gaszähler funktioniert oder zählt nicht mehr === **Nur Rechn.Nr. kleiner 2023-0094 bzw. Kaufdatum bis 27.01.2023 ** \\ Wenn der Gaszähler schonmal gezählt hat und jetzt nicht mehr zählt oder auch das Webinterface nicht mehr ansprechbar ist, dann bitte folgendes kontrollieren.\\ Bei einigen Lieferungen (Rechn.Nr. kleiner 2023-0094 / 27.01.2023) hatten sich ein paar falsche Widerstände eingeschlichen. Evtl. ist 10Ohm anstelle von 10kOhm verbaut.\\ Erkennen kann man dies am Farbcode des Widerstandes. ggf. ist der Widerstand auch bereits schwarz, verbrannt und der Farbcode ist nicht mehr zu erkennen.\\ \\ **4 Ringe**\\ 10Ohm = Farbcode: braun - schwarz - schwarz - gold\\ 10kOhm = Farbcode: braun - schwarz - orange - gold\\ \\ Falls ein 10Ohm Widerstand eingebaut ist, wird dieser bei geschlossenem Reedkontakt sehr heiß, was zum Durchbrennen und ggf auch zur Zerstörung des D1 Wemos Mini führen kann.\\ Bitte diesen Widerstand wenn möglich selbst gegen einen 4,7k oder 10k Widerstand austauschen (ich schicke gerne einen kostenfrei zu).\\ Ist der Kunde nicht in der Lage dies selbst zutun, bitte mit einen Vermerk "Falscher Widerstand!" zurück senden und ich schicke umgehend Ersatz.\\ \\ {{:public:widerstaende_fehlerhaft.jpg?500|}}{{:public:gaszaehler_bausatz_11.jpg?500|}}