Hallo Surfrobbe,
Wenn du den gleichen Zähler hast wie Kalli, hast du womöglich auch denselben Firmwarefehler im Zähler.
Um den zu umgehen musst du in der Zeile => //#define DWS74_BUG die Kommentarstriche entfernen.
Hallo Surfrobbe,
Wenn du den gleichen Zähler hast wie Kalli, hast du womöglich auch denselben Firmwarefehler im Zähler.
Um den zu umgehen musst du in der Zeile => //#define DWS74_BUG die Kommentarstriche entfernen.
Hallo URBANsUnited,
auf iobroker iobroker.sonoff installieren dann die automatische Erzeugung von Objekten im iobroker sonoff Setup einschalten und dann werden alle Objekte erzeugt auf die du dann z.B. von Flot zugreifen kannst.
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.
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
so, habe auf Tasmota 6.5 upgedated. hier ist ein Wemos binary für die die es mal ausprobieren wollen => https://www.dropbox.com/s/b6p9dkf1tlrelto/wemods-d1-4m.bin?dl=0
anbei auch die doku
Gruß gemu2015
ps die binary kann auch emails verschicken.
ja der Zähler hat definitiv einen bug. negative werte überträgt er richtig, positive falsch.
da der Zähler als bisher einziger einen scaler von -2 ausgibt konnte ich dafür einen workaround schreiben.
update auf GitHub . Versuchs mal damit und berichte dann.
Gruß Gerhard
soweit ich das sehe ist das sogar ein Programmierfehler von denen. weis noch nicht genau wie ich das kompensieren soll.
Hallo Kalli,
dein Zähler schickt auch hier eine ganz anderes Format wie alle anderen Zähler. Das wird scheinbar auch von SMA falsch dekodiert. Schick mir noch mal einen (negativen) Tageswert damit ich das gegen checken kann
Gruß Gerhard
leider geht das nicht. Theo Arends hat etliche labels und calls geändert.
das wird eine Menge Arbeit meinen Fork auf den neuesten Stand zu bringen da es unmöglich ist das alles automatisch zu mergen.
Werde ich bei Gelegenheit mal machen. Bisher sind mir die Neurungen in Tasmota aber nicht wirklich wichtig gewesen.
Hallo,
Da ich die Syntax von rules noch nie mochte habe ich einen richtigen script interpreter eingebaut, der alternativ (nicht gleichzeitig) zu rules verwendet werden kann.
Damit kann man mit if, then else (nested) und beliebigen Formeln sowie eigenen Variablennamen Programme schreiben.
Ist noch Work in progress funktioniert aber schon recht gut. etwas Info zur Syntax steht im Quelltext (xdrv_10_scripter.ino)
benötigt etwa die gleiche Menge Flash wie rules. Den Ram Speicher übernehme ich direkt von rules, so dass zur Zeit nur ca 1,5 kb Quelltext im script erlaubt sind.
Wenn ihr meinem Fork herunter ladet ist scripter jetzt default. Der Editor ist im Webinterface unter "Einstellungen => Edit script"
Gruß gemu2015
Leider hat Theo Arends inzwischen einiges geändert so dass man die xsns_95 nicht mehr problemlos in seine neueste Version übernehmen kann.
Ich konnte auch die Anpassung leider nicht so machen dass es automatisch funktioniert. Man muss von Hand eine Zeile anpassen =>
// bei neuer Tasmota Version muss hier bool stehen statt boolean
boolean Xsns95(byte function) {
//bool Xsns95(byte function) {
In größeren Abständen bringe ich meine Version auf den Stand der aktuellen Tasmota Version. Das ist leider mit sehr viel Aufwand verbunden da ich sehr viele Änderungen gemacht habe und da das nicht automatisch gemerged werden kann fast alles von Hand integrieren muss.
Ich habe einen zweiten Wemos D1 mini geflashed, aber auch damit funktioniert es nicht.
Kann es an der höhe des Pullup-Widerstand liegen. Braucht der Wemos etwas anderes als die 4,7kOhm?
Das Problem mit dem mini-d1 und anderen mit USB Anschluss ist folgendes:
Der eingebaute USB zu seriell Wandler ist über 470 Ohm mit dem RX Anschluss des ESP verbunden. Damit gibt es eigentlich einen Pullup von 470 Ohm da die Leitung vom USB seriell Wandler normalerweise auf 3,3 Volt steht.
Je nach Fototransistor und Leistung der Sendediode im Zähler kann der Transistor diese Leitung nicht mehr auf Masse ziehen weil der Pullup zu klein ist.
Entweder den SMD Widerstand unten auf der Platine direkt neben dem RX Pin auslöten (dann kann man aber den ESP nicht mehr über seriell programmieren) oder den 470 Ohm einfach gegen einen grösseren austauschen z.B. 4,7k (dann sollte eigentlich das serielle Programmieren auch funktionieren)
oder einfach einen anderen Pin mit Software serial verwenden.
dazu in der METER_DESC des Zählers den gewünschten Pin angeben und diesen Pin mit Pullup verwenden.
Gruß gemu
du weist schon dass ich extra dafür den Befehl =d eingebaut habe?
// =d => differenz berechne Differenzwerte über die Zeit aus dem Ergebnis der Zeile
// z.B. =d 3 10 berechnet die Differenz nach jeweils 10 Sekunden des Ergebnisses aus Zeile 3
// damit kann z.B. der Momentanverbrauch aus dem Gesamtverbrauch berechnet werden, falls der Zähler das nicht direkt ausgibt
"1,=d 1 10 @1," D_TPWRCURR ",W," DJ_TPWRCURR ",0|"
da einige Zähler dass nicht liefern kannst du den Wert alle N Sekunden (z.b. 10) berechnen lassen
Gruß gemu
ja aber es wird IMMER ein GET eingefügt!
if (connected) {
String url = F("GET ");
url += uri;
url += F(" HTTP/1.1\r\nHost: ");
ausserdem gab es noch einen Fehler in Tasmota dass nach dem GET noch %20 für Leerzeichen eingesetzt wurden. (das mag Thingspeak nicht)
geht auch wohl mit GET aber meierchen hat mir ein Arduino Programm gezeigt, was das macht und ich hab die Thingspeak Kommandozeile von dort übernommen. (Bei GET wäre es aber wohl auch nicht ohne Modifikation gegangen)
nein, WEBSEND hängt da immer GET und cmd etc rein, habe jetzt wenn er "=POST" findet den Befehl am Anfang weggeschnitten.
So kann man den Standard POST an Thingspeak absetzen.
Habe gerade für meierchen06 den WEBSEND in Tasmota angepasst damit man damit auch an Thingspeak senden kann. Vielleicht will das ja noch jemand anderes testen,
=>
#define WEBSEND_THINGSPEAK
z.B. Websend [184.106.153.149:80] POST /update?key=xyz&field3=5555&field4=111 (xyz eigenen autkey einsetzen)
Hier noch ein paar Erläuterungen zur Software Entprellung von Gaszählern (Wasserzählern etc) :
die Datei xsns01_counter.ino könnt ihr bei Bedarf in die neueste Tasmota release übernehmen.
eingeschaltet wird der Mode in dem ihr in der Datei xsns01_counter.ino =>
#define GAS_COUNTER_MODE 5000
angebt. die 5000 ist die Wartezeit in Microsekunden auf das Prellen beim Abschalten des Kontakts.
diese Zeit sollte so kurz wie eben möglich sein da wir uns in einer Interrrupt Routine befinden,
insbesondere wenn der ESP noch andere Sachen im Interrupt erledigen muss. (ist von dem Reed Kontakt abhängig)
da ich das nicht selbst ausprobieren konnte (mangels GAS Zähler) habe ich das etwas gross vorgegeben.
Gruß
Gemu
werde wohl mal einen Testaufbau machen müssen. Mal sehen ob ich einen Reed Kontakt rumliegen habe.
Was natürlich direkt mit Tasmota gehen würde wäre eine Hardware Entprellung also R/C Glied und Schmitt Trigger oder als IC (z.B. MAX 6816)
Hallo,
Beim Gaszähler haben wir einen Reed Kontakt. Dieser wird von der Zählerwalze durch einen Magnet ausgelöst. Die Impulsdauer ist deshalb nicht definiert, es hängt davon ab wie viel Gas verbraucht wird. Es kann auch sein, dass die Walze stehen bleibt und dann der Kontakt für eine ganze Weile geschlossen ist.
Das führt im Tasmota Counter mode zu Problemen, denn der Reed prellt beim Öffnen und Schließen.
Debounce hilft uns hier nicht weiter. (kann auch ganz kurz stehen ca 10 ms)
Da die Prellzeit von Reed Kontakten unter 100 uS ist spielt das kaum eine Rolle.
Ich habe in Tasmota jetzt einen GAS_COUNTER_MODE für counter1 eingebaut der das berücksichtigt. (ist per default eingeschaltet)
Bitte mal ausprobieren.
Was ist der Unterschied zwischen den Countern?:
Counter1 (42)
Counter1n (94)
n bedeutet "no internal pull up", also ohne n wird er interne Pullup eingeschaltet, sonst nicht (floatender Eingang)
Grüße
gemu2015