Der Hat ja nicht so viele Anschlussmöglichkeiten. An GPIO 14???
Mehr wie ein zusätzlich freier GPIO ist nicht nötig,
GPIO14 ist dafür gut geeignet.
LG
Der Hat ja nicht so viele Anschlussmöglichkeiten. An GPIO 14???
Mehr wie ein zusätzlich freier GPIO ist nicht nötig,
GPIO14 ist dafür gut geeignet.
LG
Hallo URBANsUNITED,
der GPIO ist doch eigentlich frei Wählbar, man muss ihn halt in der "xsns_95_sml.ino" anpassen.
Danke! Jetzt hab ich verstanden und auch gesehen!
Baudrate:
Kann man irgendwo die Baudrate einstellen? Ich brauche 9600 7E1 für meinen Stromzähler.
Kannst mir mal deine xsns 95 zeigen? Wie hast du deinen Gaszähler ingebunden als zweites Gerät? Welche Kennzahlen braucht man?
Oder ist das wirklich alles?
"2,1-0:1.8.0*255(@100," D_GasIN ",cbm," DJ_COUNTER ",2|"
1.8.0 für den Gesamtverbrauch getant als Obis und der Counter zum addieren?
Würde mir dann den METER==COMBO3b zu einen 2'er einkürzen
Danke
Hallo URBANsUNITED,
anbei die gekürzte xsns_95_sml.ino
#ifdef USE_SML_M
#define XSNS_95 95
// Baudrate des D0 Ausgangs, sollte bei den meisten Zählern 9600 sein
#define SML_BAUDRATE 9600
// sende dies alle N Sekunden, für Zähler die erst auf Anforderung etwas senden
//#define SML_SEND_SEQ
//==========================================================
// debug counter input to led for counter1 and 2
#define DEBUG_CNT_LED1 12 // GPIO12 (D6) H20-LED blau
#define DEBUG_CNT_LED2 14 // GPIO14 (D5) GAS-LED gelb
//==========================================================
// max 23 Zeichen
#if DMY_LANGUAGE==de-DE
// deutsche Bezeichner
#define D_TPWRIN "Zählerstand" // Verbrauch TOTAL
#define D_TPWROUT "Einspeisung" // Solareinspeisung
#define D_TPWRCURR1 "Verbrauch L1" // Leistung L1
#define D_TPWRCURR2 "Verbrauch L2" // Leistung L2
#define D_TPWRCURR3 "Verbrauch L3" // Leistung L3
#define D_TPWRCURR "Σ Verbrauch L1L2L3" // Aktuelle Leistung
#define D_Strom_L1 "Strom L1" // Strom L1
#define D_Strom_L2 "Strom L2" // Strom L2
#define D_Strom_L3 "Strom L3" // Strom L3
#define D_StL1L2L3 "Σ Ströme L1L2L3" // Summe Ströme L1+L2+L3
#define D_Spannung_L1 "Spannung L1" // Spannung L1
#define D_Spannung_L2 "Spannung L2" // Spannung L2
#define D_Spannung_L3 "Spannung L3" // Spannung L3
#define D_SpL1L2L3 "ø Spannung L1L2L3" // Mittelwert Spannung
#define D_METERNR "Zähler Nr" // Zählernummer
#define D_METERSID "Hager Service ID" // Hager Zähler Service ID
#define D_GASIN "Zählerstand" // Gas-Verbrauch
#define D_H20IN "Zählerstand" // H2o-Verbrauch
#define D_COUNTER "Zähler" // Zähler
#else
// alle anderen Sprachen
#define D_TPWRIN "Total-In" // Zählerstand
#define D_TPWROUT "Total-Out" // Solarenspeisung
#define D_TPWRCURR1 "Current-In p1" // Leistung L1
#define D_TPWRCURR2 "Current-In p2" // Leistung L2
#define D_TPWRCURR3 "Current-In p3" // Leistung L3
#define D_TPWRCURR "Σ Current-In/Out" // Aktueller Verbrauch
#define D_Strom_L1 "Current L1" // Strom L1
#define D_Strom_L2 "Current L2" // Strom L2
#define D_Strom_L3 "Current L3" // Strom L3
#define D_StL1L2L3 "Σ Current L1L2L3" // Summe Ströme L1+L2+L3
#define D_Spannung_L1 "Voltage L1" // Spannung L1
#define D_Spannung_L2 "Voltage L2" // Spannung L2
#define D_Spannung_L3 "Voltage L3" // Spannung L3
#define D_SpL1L2L3 "ø Voltage L1L2L3" // Mittelwert Spannung
#define D_METERNR "Meter_number" // Zählernummer
#define D_METERSID "Hager Service ID" // Hager Zähler Service ID
#define D_GASIN "Counter" // Gas-Verbrauch
#define D_H20IN "Counter" // H2o-Verbrauch
#define D_COUNTER "Count" // Zähler
#endif
// JSON Strings besser NICHT übersetzen
// max 23 Zeichen
#define DJ_TPWRIN "Total_in" // Zählerstand (VAR2)Strom
#define DJ_TPWROUT "Total_out" // Solareinspeisung
#define DJ_TPWRCURR1 "Power_p1" // Leistung L1
#define DJ_TPWRCURR2 "Power_p2" // Leistung L2
#define DJ_TPWRCURR3 "Power_p3" // Leistung L3
#define DJ_TPWRCURR "Power_curr" // Aktueller Verbrauch (VAR4)Leistung
#define DJ_CURR1 "Curr_p1" // Strom L1
#define DJ_CURR2 "Curr_p2" // Strom L2
#define DJ_CURR3 "Curr_p3" // Strom L3
#define DJ_CSUM "Curr_summ" // Summe Ströme L1+L2+L3 (VAR5)Ströme
#define DJ_VOLT1 "Volt_p1" // Spannung L1
#define DJ_VOLT2 "Volt_p2" // Spannung L2
#define DJ_VOLT3 "Volt_p3" // Spannung L3
#define DJ_VAVG "Volt_avg" // Mittelwert Spannung (VAR6)Spannungen
#define DJ_METERNR "Meter_number" // Zählernummer
#define DJ_METERSID "Hager Service ID" // Hager Zähler Service ID
#define DJ_GASIN "Count" // Gas-Verbrauch (VAR1) GAS
#define DJ_H20IN "Count" // H20-Verbrauch (VAR3) H2o
#define DJ_COUNTER "Count" // Zähler
struct METER_DESC {
uint8_t srcpin;
uint8_t type;
uint16_t flag;
uint16_t params;
char prefix[8];
};
// Zählerliste , hier neue Zähler eintragen
//=====================================================
#define EHZ161_0 1
#define EHZ161_1 2
#define EHZ363 3
#define EHZH 4
#define EDL300 5
#define Q3B 6
#define COMBO3 7
#define COMBO2 8
#define COMBO3a 9
#define Q3B_V1 10
#define EHZ363_2 11
#define COMBO3b 12
#define WGS_COMBO 13
//=====================================================
// diesen Zähler auswählen
#define METER WGS_COMBO
//=====================================================
//======================WGS_COMBO============================================================
#if METER==WGS_COMBO
#define METERS_USED 3
struct METER_DESC const meter_desc[METERS_USED]={
[0]={5,'c',0,10,"H20"}, // GPIO5 (D1) Wasser Zähler
[1]={4,'c',0,50,"GAS"}, // GPIO4 (D2) Gas Zähler
[2]={3,'s',0,SML_BAUDRATE,"SML"}}; // SML Hardware serial RX pin
// 3 Zähler definiert
const uint8_t meter[]=
//----------------------------Wasserzähler--sensor95 c1------------------------------------
"1,=h==================|" // Zeilen
"1,1-0:1.8.0*255(@10000," D_H20IN ",cbm," DJ_H20IN ",4|" // 1
//----------------------------Gaszähler-----sensor95 c2------------------------------------
// bei gaszählern (countern) muss der Vergleichsstring so aussehen wie hier
"2,=h==================|"
"2,1-0:1.8.0*255(@100," D_GASIN ",cbm," DJ_GASIN ",3|" // 2
//----------------------------Stromzähler-EHZ363W5--sensor95-------------------------------
"3,=h==================|"
//0x77,0x07,0x01,0x00,0x01,0x08,0x00,0xff
"3,77070100010800ff@1000," D_TPWRIN ",KWh," DJ_TPWRIN ",3|" // 3 Zählerstand Total
"3,=h==================|"
//0x77,0x07,0x01,0x00,0x10,0x07,0x00,0xff
"3,77070100100700ff@1," D_TPWRCURR ",W," DJ_TPWRCURR ",2|" // 4 Aktuelle Leistung
"3,=h ------------------------|"
"3,=m 10+11+12 @100," D_StL1L2L3 ",A," DJ_CSUM ",2|" // 5 Summe Aktuelle Ströme
"3,=h ------------------------|"
"3,=m 13+14+15/#3 @100," D_SpL1L2L3 ",V," DJ_VAVG ",2|" // 6 Mittelwert Spannungen
"3,=h==================|"
//0x77,0x07,0x01,0x00,0x24,0x07,0x00,0xff
"3,77070100240700ff@1," D_TPWRCURR1 ",W," DJ_TPWRCURR1 ",2|" // 7 Wirkleistung L1
//0x77,0x07,0x01,0x00,0x38,0x07,0x00,0xff
"3,77070100380700ff@1," D_TPWRCURR2 ",W," DJ_TPWRCURR1 ",2|" // 8 Wirkleistung L2
//0x77,0x07,0x01,0x00,0x4c,0x07,0x00,0xff
"3,770701004c0700ff@1," D_TPWRCURR3 ",W," DJ_TPWRCURR1 ",2|" // 9 Wirkleistung L3
"3,=h --------------------------|"
//0x77,0x07,0x01,0x00,0x1f,0x07,0x00,0xff
"3,770701001f0700ff@100," D_Strom_L1 ",A," DJ_CURR1 ",2|" // 10 Strom L1
//0x77,0x07,0x01,0x00,0x33,0x07,0x00,0xff
"3,77070100330700ff@100," D_Strom_L2 ",A," DJ_CURR2 ",2|" // 11 Strom L2
//0x77,0x07,0x01,0x00,0x47,0x07,0x00,0xff
"3,77070100470700ff@100," D_Strom_L3 ",A," DJ_CURR3 ",2|" // 12 Strom L3
"3,=h --------------------------|"
//0x77,0x07,0x01,0x00,0x20,0x07,0x00,0xff
"3,77070100200700ff@100," D_Spannung_L1 ",V," DJ_VOLT1 ",2|" // 13 Spannung L1
//0x77,0x07,0x01,0x00,0x34,0x07,0x00,0xff
"3,77070100340700ff@100," D_Spannung_L2 ",V," DJ_VOLT2 ",2|" // 14 Spannung L2
//0x77,0x07,0x01,0x00,0x48,0x07,0x00,0xff
"3,77070100480700ff@100," D_Spannung_L3 ",V," DJ_VOLT3 ",2|" // 15 Spannung L3
"3,=h==================|"
//0x77,0x07,0x01,0x00,0x00,0x00,0x09,0xff
"3,77070100000009ff@#," D_METERSID ",," DJ_METERSID ",0|" // 16 Hager Service ID
//"3,77070100000009ff@#," D_METERNR ",," DJ_METERNR ",0|" // 16 Zählernummer
"3,=h==================|"
"3,=h"; // letzte Zeile
#endif
-------------------------------------------------------------------------------------------------
#ifdef DEBUG_CNT_LED1
if (cindex==0) {
pinMode(DEBUG_CNT_LED1, OUTPUT);
if (digitalRead(meter_desc[meters].srcpin)) {
digitalWrite(DEBUG_CNT_LED1,LOW); // High
} else {
digitalWrite(DEBUG_CNT_LED1,HIGH); // LOW
}
}
#endif
#ifdef DEBUG_CNT_LED2
if (cindex==1) {
pinMode(DEBUG_CNT_LED2, OUTPUT);
if (digitalRead(meter_desc[meters].srcpin)) {
digitalWrite(DEBUG_CNT_LED2,LOW); // HIGH
} else {
digitalWrite(DEBUG_CNT_LED2,HIGH); // LOW
}
}
#endif
Alles anzeigen
Wie geschrieben das ist nicht die komplette xsns_95_sml.ino sondern gekürzt, das wesentliche ist ersichtlich.
Danke meierchen006!
Das hatte ich mir auch so vorgestellt. Funktioniert auch theoretisch.
Ich habe nur ein neues Problem.
Meine Daten für den D0 kamen nicht sauber rein, musste also die Position des Phototransistors korrigieren und seitdem kommen keine Daten mehr rein. Egal was ich versuche.
Leuchte hingegen mit meinem iPhone auf die Position wo der Transistor sitzt, kommen die Daten (durch das sehr helle Licht der Taschenlampe).
Es geht auch nur ohne Widerstand. Baue ich den dazwischen, kommen überhaupt keine Daten.
Wer hat einen Q3D Stromzähler und kann mir ein Bild des Aufbaus bitte zeigen?
Vielen Dank
URBANsUNITED
Danke, aber das meinte ich nicht. Mich interessiert der verwendete Phototransistor und wie der montiert wurde.
Kann ich den direkt auf das Auge beim Zähler montieren oder muss ein Abstand da sein.
Habe aktuell den BPW 40, der scheint aber richtig zickig zu sein. Habe jetzt den BPW 78a bestellt, da es den TEKT5400S nur sehr schwer und teuer zu bekommen ist. Wurde aber auch so in der Readme erwähnt. Hatte mich an diesen Beitrag ursprünglich orientiert, es ging ja auch schon mal. Die Daten sind geflossen, jedoch mittels Raspberry Pi...
Hallo URBANsUNITED,
also ich hatte meinen Transistor einfach mit Tesa davorgeklebt, hatte funktioniert.
Du musst natürlich auch die Polarität achten, hast du ihn mal gedreht und auch vor die Sendediode?
Du glaubst gar nicht, was ich schon alles nach dem Versetzen alles probiert habe
Er lieferte nachher wieder Werte, aber nur, wenn ich mit der iPhone Lampe voll drauf gehalten hatte Schon Merkwürdig. Ging ja mal...
Ich warte jetzt auf neue Transistoren, Schaltung und Software steht. Wenn ich es 100% getestet habe, stelle ich meine 2'er Combo (D0 & Gas), auch rein.
Du glaubst gar nicht, was ich schon alles nach dem Versetzen alles probiert habe
Er lieferte nachher wieder Werte, aber nur, wenn ich mit der iPhone Lampe voll drauf gehalten hatte Schon Merkwürdig. Ging ja mal...
Ich warte jetzt auf neue Transistoren, Schaltung und Software steht. Wenn ich es 100% getestet habe, stelle ich meine 2'er Combo (D0 & Gas), auch rein.
URBANsUNITED hast du es mal so probiert?
Was mache ich falsch?
Ich bekomme meinen Zähler nicht zum Laufen.
Die Schaltung ist korrekt.
Habe einen BPW78A – Fototransistor an RX und GND angeschlossen. Zusätzlich habe ich einen 1K Widerstand von 3,3V an RX verbunden.
Resultat:
07:08:05 CMD: Sensor95 D1
07:08:05 MQT: stat/meinsonoff/RESULT = {"Command":"Error"}
Es kommen keine Werte
Nehme ich diese Schaltung 1:1 zu meinem Raspberry Pi 3b, klappt es auf anhieb!
Bedeutet, Schaltung ist ok, Transistor in Ordnung.
Ich habe einen easymeter Q3D und möchte anstatt RPI einen Sonoff Basic nutzen.
Was habe ich bisher unternommen (so einiges):
Gemu2015’s Tasmota fork genommen, UNI2 & 3 jeweils kompiliert
Änderungen an:
platformio.ini
env_default sonoff-DE
;env_default = wemosd1-DE
-DUSE_CONFIG_OVERRIDE
Sonoff/my_user_config.h
Unter
// -- Serial sensors ------------------------------
Das hinzugefügt:
#define USE_SML_M
#define SML_BSIZ 32
Unter Sonoff/user_config_override.h
Habe ich meine Wlan settings etc. hinzugefügt
Unter
sonoff/xsns_95_sml.ino
habe ich
#define METER EHZ161_0
Als Zähler gesetzt, da der auch die OBIS Zahlen nutzt oder meinen eigenen Q3D Zähler, den ich vorher per
#define Q3D 14 hinzugefügt hatte.
Zusätzlich
Da mein Zähler mit der Baudrate 9600 7E1 sendet, habe ich auch das schon probiert.
Dazu habe ich unter
lib/TasmotaSerial-2.3.1/src/TasmotaSerial.cpp
alt:
Serial.begin(speed, SERIAL_8N2);
} else {
Serial.begin(speed, SERIAL_8N1);
Neu
Serial.begin(speed, SERIAL_7E1);
} else {
Serial.begin(speed, SERIAL_7E1);
Und
sonoff/sonoff.ino
Alt:
// Global variables
SerialConfig serial_config = SERIAL_8N1;
Neu:
// Global variables
SerialConfig serial_config = SERIAL_7E1;
Hilft alles nichts! Beim Raspberry ist die Baudrate 9600 7E1 notwending, sonst kommt nichts.
Ich habe alles Probiert, Mit Widerstand (1k, 4,7k und 10k), ohne Widerstand, Baudrate original und angepasst und und und
Es kommt nichts an
Seht ihr einen Fehler?
Bin echt am verzweifeln!!!
Danke
URBANsUNITED
Hallo URBANsUNITED
Nix verändern an Tasmota Serial und so. 7E1 wird automatisch decodiert wenn du OBIS einstellst.
zuallererst musst du in der Konsole was sehen, also mit sensor95 d1 in der Konsole. (d1 kleingeschrieben)
dort sollten die Daten direkt als Text lesbar sein.
erst wenn das geht weitere Fehlersuche.
Gruß gemu2015
Danke! gemu2015
das mit der Serialadaption hatte ich mir schon fast gedacht. Weil ich ja Daten schon mal bekommen hatte. Nur jetzt nicht mehr. Egal was ich versuche
Hab ich denn irgendwo eine Logiklücke? Oder einen Fehler eingebaut was das kompilieren angeht?
Mache es per macOS und Atom
Danke
URBANsUNITED
Moin!
Ich hab den Fehler gefunden... Meine Lötverbindung im Sonoff haben sich gelöst, die Stifte waren locker. Wahrscheinlich, weil ich so oft umgesteckt hatte.
Beim Nachlöten sind mir zwei Kontaktpads abgerissen. Könnte
Naja, werde jetzt einen anderen nehmen, der im generell besseren zustand ist. Der Basic war schon so sch*** gelötet. Keine Ahnung was ich mir dabei gedacht hatte.
Melde mich dann wieder zurück.
Danke für eure Geduld!
Cheers
URBANsUNITED
Hallo,
ich habe das Auslesen von SML an meinem Q3C Zähler jetzt am Laufen. Vielen Dank an das Forum für die zahlreichen Tipps.
Die Werte werden auf der Übersichtsseite dargestellt und auch regelmäßig aktualisiert.
Ein Problem besteht aber noch: Wie bekomme ich die Daten jetzt zu meinem Domoticz Server. In der Konsole sehe ich dass die WErte regelmäßig gesendet werden, allerdings nicht für Domoticz. Hierfür müßte ich noch ein IDX vergeben. Es gibt aber atkutell keine Möglichkeit in der Öberfläche diese zu vergeben ??!!
Gruß
Dom
Hallo,
nachdem ich meinen Sonoff Basic gekillt hatte, ist jetzt ein NodeMCU Lolin V3 im Einsatz. Komisch... funktionierte auf anhieb
Ich habe jetzt den Gaszähler auch mit eingebunden, aber anscheinend wird noch nicht richtig gezählt.
Die Beiträge zum Gaszähler beziehen sich auch Branch "Universal 2", geflasht habe ich jetzt aber "Universal 3", da dort die Entwicklung vorangetrieben wird und alle Mods enthalten sind wie es aussieht.
ABER bei Uni3 kann ich nicht direkt an den Counter Werten "spielen" wie bei Uni2:
UNI2 xsns_01_counter.ino
// if defined shows gas meter count for counter 1
// parameter is debouncing in us for switch open in gas counters
// set as low as possible
//#define GAS_COUNTER_MODE 5000
// gas poll mode every 100 ms (no irqs) GAS_COUNTER_MODE must be >0 but value is ignored
#define GAS_POLL_MODE
#define GAS_DECIMALS 2
Wie definiere ich denn jetzt den Gaszähler? Wie trage ich diese Daten bei Uni3 ein?
#define GAS_COUNTER_MODE 5000
#define GAS_POLL_MODE
Btw. Counter1 ist doch noch korrekt oder?
Danke euch
Schönen Tag
URBANsUNITED
Hallo URBANsUnited,
schön das es weiter geht bei dir.
Ich bin noch bei Universal2 dort läuft es bei mir bisher Fehlerlos.
Erste Tests mit Universal3 habe ich auch schon gemacht, kann aber nicht kompilieren, dazu bin ich in Kontakt zu gemu2015
Bei meinem Zähler WGS Beispiel ist der Gaszähler Counter 2 (Sensor95 C2) , habe ich extra dabei geschrieben damit ich es auch selbst nicht vergesse.
Zitat
- //======================WGS_COMBO============================================================
- #if METER==WGS_COMBO
- #define METERS_USED 3
- struct METER_DESC const meter_desc[METERS_USED]={
- [0]={5,'c',0,10,"H20"}, // GPIO5 (D1) Wasser Zähler
- [1]={4,'c',0,50,"GAS"}, // GPIO4 (D2) Gas Zähler
- [2]={3,'s',0,SML_BAUDRATE,"SML"}}; // SML Hardware serial RX pin
- // 3 Zähler definiert
- const uint8_t meter[]=
- //----------------------------Wasserzähler--sensor95 c1------------------------------------
- "1,=h==================|" // Zeilen
- "1,1-0:1.8.0*255(@10000," D_H20IN ",cbm," DJ_H20IN ",4|" // 1
- //----------------------------Gaszähler-----sensor95 c2------------------------------------
- // bei gaszählern (countern) muss der Vergleichsstring so aussehen wie hier
- "2,=h==================|"
- "2,1-0:1.8.0*255(@100," D_GASIN ",cbm," DJ_GASIN ",3|" // 2
Danke meierchen006 werde dann UNI2 nochmals kompilieren.
Aber vielleicht kann gemu2015 etwas dazu sagen?
Btw. Mein Code für Gas und Stromzähler (Q3D - Obis) sieht so aus:
#if METER==SG_COMBO
#define METERS_USED 2
struct METER_DESC const meter_desc[METERS_USED]={
[0]={0,'o',0,SML_BAUDRATE,"OBIS"}, // harware serial RX pin
[1]={4,'c',0,50,"Gas"}}; // Gas counter GPIO4 software serial
const uint8_t meter[]=
//"1,0-0:0.0.0*255(@#)," D_METERNR ",," DJ_METERNR ",0|"
"1,1-0:1.8.0*255(@1," D_TPWRIN ",KWh," DJ_TPWRIN ",4|"
"1,1-0:1.7.0*255(@1," D_TPWRCURR ",W," DJ_TPWRCURR ",16|"
"1,1-0:21.7.0*255(@1," D_TPWRCURR1 ",W," DJ_TPWRCURR1 ",0|"
"1,1-0:41.7.0*255(@1," D_TPWRCURR2 ",W," DJ_TPWRCURR2 ",0|"
"1,1-0:61.7.0*255(@1," D_TPWRCURR3 ",W," DJ_TPWRCURR3 ",0|"
"1,0-0:96.1.255*255(@#)," D_METERNR ",," DJ_METERNR ",0|"
// Gaszähler
"2,1-0:1.8.0*255(@100," D_GasIN ",cbm," DJ_COUNTER ",3";
#endif
Alles anzeigen
erstmal zur Info:
die Universal 2 wird in Kürze gelöscht weil durch Universal 3 ersetzt. Ist jetzt Tasmota 6.5.0.9
Der Gaszähler ist nicht mehr im xsns_01_counter.ino sondern in der xsns_95 integriert.
Deshalb ist in der Universal 3 wieder der original xsns_01_counter.ino enthalten.
Man braucht dazu in den Tasmota settings keine Einstellungen für counter vornehmen, sondern definiert wie bei SML und OBIS die gpio pins in der xsns_95
Der counter wird im Gegensatz zur original Counter software von Tasmota nicht per IRQ sondern per polling abgetastet. nur damit kann man das besondere Verhalten der Reedkontakte beim Gaszähler berücksichtigen der beim anziehen und abfallen prellen kann und auf jedem Pegel beliebige Zeit stehen bleiben kann. (gilt nur für nicht hardware entprellte Kontakte)
Die Pollzeit kann dabei den Signaleigenschaften angepasst werden und sollte deutlich schneller sein als die kürzeste Impulsbreite des Signals.
Bei Gaszählern ist die Impulszeit in der Regel sehr langsam, da dürften 100 ms reichen, bei Wasserzählern kann diese Zeit deutlich kürzer sein und erfordert eine kürzere Pollzeit. Bei normierten Impulsen mit Hardwareentprellung (z.B. Cyble Sensor) ist es eventuell besser den Original Tasmota counter mit IRQ zu verwenden.
Danke gemu2015 für die Klarstellung! Sollte einiges einfacher machen, da kein weiterer Configbedarf.
Ich hänge aber trotzdem mit meinem Gaszähler fest. Neueste UNI3 Version compiliert, mein NodeMCU zählt alles, nur nicht was er soll. sehr merkwürdiges Verhalten.
Mal zählt er zu schnell, dann Sprünge, dann gar nichts.
Ich habe einen BK-G4 MT Gaszähler, ein Impuls entspricht 0,01m³, mein Reed Kontakt ist der MK04-1A66B-500W, der ist dem von meierchen006 sehr sehr ähnlich von den Specs.
Kabellänge ca. 100cm, Reed Kontakt mit der Schrift nach oben, ganz rechts montiert wie in diesem Thread https://www.photovoltaikforum.com/thread/119296-…028#post1536028 oder hier, da sitzt der Kontakt nur um 90° verdreht
https://www.solvimus.de/blog/smart-met…der-gaszaehler/
Meine "Gas" Settings:
[1]={4,'c',0,50,"Gas"}}; // Gas counter GPIO4 software serial
"2,1-0:1.8.0*255(@100," D_GasIN ",cbm," DJ_COUNTER ",3";
In der Web Config steht GPIO 4 auf Counter1 (42)
Ist ein Widerstand zum Reed Kontakt notwendig? Habe mit 10K und ohne probiert.
Ich habe da meine Verständnislücken:
Gaszähler Impuls = 0,01m³, es sind aber 3 Nachkommastellen vorhanden.
Ist @100 überhaupt korrekt und sind dann ",3"; richtig oder beißen sich diese Angaben?
Beim Volkszähler muss man beim BK G4 die Auflösung im Sensor auf 100000 stellen. Betrifft das mich/uns auch hier?
Es wurde ja bereits viel geschrieben, aber immer ist alles unvollständig. Ich habe bestimmt schon 3x den kompletten Thread gelesen und auch die anderen 2 zum Gaszähler. Vorallem wenn wichtige Änderungen gemacht werden, kann man das nirgends nachlesen und dann auch umsetzen.
Ich danke euch!
Gruß
URBANsUNITED