Beiträge von opferwurst


    Hast Du in der user_config_override.h das Scripting aktiviert anstatt der Rules ?!Wenn nicht, dann hiermit ergänzen:

    Code
    1. #ifndef USE_SCRIPT
    2. #define USE_SCRIPT
    3. #endif
    4. #ifdef USE_RULES
    5. #undef USE_RULES
    6. #endif
    7. #define USE_SCRIPT_WEB_DISPLAY
    8. #define USE_SCRIPT_JSON_EXPORT


    Dann auf der Weboberfläche "Einstellungen" > "Edit Script" und dann folgendes eintragen:


    Dann noch "enable Script" anklicken und "Speichern".


    Hallo Horst


    Habe selbigen Zähler schon länger ohne Aussetzer am laufen. Hier mal mein Script :


    Nutze allerdings lediglich einen TEKT5400 als IR.

    sunburstc


    Habe heute den Heschen Induktiver Näherungsschalter LJ12 A3-4-Z/BX bekommen. Der hat wie vermutet keinen internen 10k Widerstand.

    Dennoch wird mein Zähleruhrplättchen nicht detektiert.




    Nun warte ich mal auf den Kapazitiven Sensor und habe noch einen grösseren induktiven LJ18 A3-4-Z/BX bestellt.


    Bis in ca.3 Wochen ... ;)

    Alsooo....


    Mein Skript sieht jetzt wie folgt aus...

    ->sensor95 r zeigt m.M. auf die nicht weiterentwickelte xsns_95_sml.ino . Ich benutze immer ->sensor53 r





    sunburstc


    Ich habe den Widerstand entfernt. Jetzt geht nix mehr. Die LED glimmt, leuchtet mal hell oder gar nicht wenn man einen metallischen Gegenstand davor hält. Habe jetzt erst mal den induktiven Heschen von Amazon bestellt...


    Für alle, welche einen Induktiven Sensor LJ12A3-4Z/BX NPN benutzen:

    Bei meinem ist ein interner 10k Widerstand verbaut.

    Somit sollte eine Diode zum Schutz des GPIOs verwendet werden:



    Quelle


    Weiterhin schaltete mein Sensor bei 5V Betriebsspannung nicht auf GND, es lag immer eine HIGH am Ausgang an, obwohl die kleine rote LED am Sensor leuchtete. Mit 12V detektiert der Sensor nun bei metallischen Gegenständen. Für mein "Metallplättchen" auf der Wasseruhr reicht es hingegen nicht. Ich werde mal einen Kapazitiver Sensor bestellen...

    Hallo gemu


    Wenn ich Dein Script zusammen mit der Zählerdefinition laufen lasse, funktioniert es:


    wenn ich aber noch meine Einzelwert-Sendscript mit dazu nehme, funktioniert das Sendescript, aber der Websend nicht!?



    Habe ich irgendwo einen Syntaxfehler? Oder darf ich z.B. den "SML#Power_curr" nur einmal zur Variablendefinition verwenden?



    Update: Mit dem folgenden Script läuft es. Ich habe alles zusammengefasst unter den entsprechenden >D, >T und >S Abschnitten.


    habe noch nichts gefunden was in rules geht und in scripter nicht.



    Hallo gemu


    Vielen Dank. Werde ich so einbauen...

    Meine rule1 vom letzten Beitrag würde ich so umsetzen:



    Eine Frage noch betreffend des Timings. Gibt es eine Definition, das Script im Teleperiod Zeitrahmen auszuführen?

    Hallo


    Da ich auch meinen Hauptzähler auf die neue Scriptingversion von tasmota umstellen möchte, würde ich gern diese zwei Rules auf Scripting umstellen:


    1.Aufsplittung des Json Strings in Einzelwerte


    MQT: tele/sonoff-sml/SENSOR = {"Time":"2019-09-29T08:54:14","SML":{"Total_in":8846,"Total_out":1035,"Power_curr":362 }}

    (Hintergrund: Der data_type des mqtt_consumer-Plugins von Telegraf steht auf float)


    Umsetzung bisher als Rule:


    Code
    1. rule1
    2. on tele-SML#Total_in do publish esp/rulesSML/total_in %value% endon
    3. on tele-SML#Total_out do publish esp/rulesSML/total_out %value% endon
    4. on tele-SML#Power_curr do publish esp/rulesSML/power_curr %value% endon

    Rule1 on // Rule1 aktivieren

    Rule1 4 // für "Once":"OFF" bei Rule1



    2.Senden des PowerOn Commands (PV-Überschuss -> S20 Steckdose)


    Code
    1. rule2
    2. on SML#Power_curr<-280 do WebSend [192.168.xxx.x] POWER1 ON endon
    3. on SML#Power_curr>-10 do WebSend [192.168.xxx.x] POWER1 OFF endon

    Rule2 on // Rule2 aktivieren

    Rule2 5 // für "Once":"ON" bei Rule2



    Ist das per Scripting möglich?

    ich selbst wollte mich eigentlich langsam zurückziehen und mit anderen Projekten beschäftigen ...

    Da möchte ich schnell noch was fragen. Ist auch möglich das M-Busprotokoll eines Wärmemengenzählers auszulesen?


    Ich habe zwar das Vorgängermodell, ich denke aber das sie bei Aquametro das Rad nicht neu erfunden haben...

    Hier wäre der Link zum Gerät : Amtron Sonic D


    Gemäss Technischer Doku bzw.Kommunikationsbeschreibung (siehe Link oben) :


    Der AMTRON® SONIC D ist mit einer optischen Schnittstelle nach ZVEI mit M-Bus-Protokoll nach EN 1434 ausgerüstet.


    Um die optische ZVEI-Schnittstelle zu aktivieren muss 2,2 sec lückenlos ein ‘0’ - ‘1’ Bitmuster mit 2400 Baud
    (= 480 Byte + $55 + 8Datenbit + No Parity + 1Stopbit) gesendet werden. Nach 11 bis 330 Bitzeiten (2400 Baud)
    Pause kann dann mit der eigentlichen Kommunikation begonnen werden.

    Nachdem das Auslesen meines Stromzählers nun funktioniert habe ich eine Frage zu Websend:


    Wie kann ich z.B. den Aktuellen Verbrauch zu http://emoncms.org senden ?


    Der Aufruf sieht z.B. so aus : https://emoncms.org/input/post?node=q3d&json={currentpower:200}&apikey=xxxxxx


    Ich habe schon ein wenig probiert, aber ohne Erfolg. Hier mal mein dilettantischer Versuch ;)


    Update . Habe es hinbekommen !


    Konsole:

    Code
    1. 17:59:20 Script: performs "Websend [80.243.190.58:80]/input/post?node=q3d&apikey=xxxxxx&json={powercurrent:24.96}"
    2. 17:59:20 MQT: stat/q3d_tasmota/RESULT = {"WebSend":"Done"}
    3. 17:59:26 MQT: tele/q3d_tasmota/SENSOR = {"Time":"2019-09-27T17:59:26","OBIS":{"Total_in":20199.9131113,"Power_p1":-1.41,"Power_p2":24.71,"Power_p3":1.66,"Power_curr":24.96,"Meter_number":"1002417"}}



    Fantastisch ! VIELEN DANK !!!

    Habe Deinen Descriptor eingetragen ...


    Besten Dank. Lustigerweise steht ja in Deinem log auch nicht viel mehr !?!

    Die folgenden Werte fehlen im log wie bei mir :


    1-0:1.7.0*255

    1-0:21.7.0*255

    1-0:41.7.0*255

    1-0:61.7.0*255


    Und bei Dir werden sie angezeigt ?! It's magic :-)


    PS. habe gerade gesehen, die Werten tauch doch einmal am Anfang auf, dann aber nicht wieder.

    bei vielen Zählern hat sich 4,7k als Pullup bewährt.

    Das kommt mit 4.7k heraus :


    Habe auch andere GPIOs und das gleiche noch am Wemos probiert. Habe ebenfalls 1k, 2.2k, 3.3k und 9.4k . Sieht alles mehr oder minder gleich aus in der Konsole. (ausser bei 9.4k kommen nur noch einzelne Symbole)

    Auch ein Tausch gegen den BPW78 brachte keine Änderung.

    Jemand noch ein Tipp ?

    Nimm mal einen anderen Pin (der keinen internen Pullup hat) zusammen mit dem 1k Pullup dann sollte es gehen.

    Hallo gemu


    Besten Dank!


    Teilerfolg:



    Verwendetes Script :


    sensor53 d1 Ausgabe:

    Jetzt habe ich an einen USB to TTL-Konverter meinen TEKT5400S+1K Pullup angeschlossen und wieder mit minicom die serielle Schnittstelle ausgelesen und was sehe ich !??


    Somit kann ich nun sämtliche Hardwarefehler eigentlich ausschliessen.

    Ich habe gleich anschliessend den NodeMCU angeschlossen. Anzeige alles mit "0", also unverändert.



    Weitere Erkenntnisse:

    -Die Positionierung muss ziemlich genau erfolgen. Nur wenige Millimeter Abweichung und es kommt nichts mehr an (habe den TEKT nun ordentlich fixiert)

    -ohne 1K Pullup geht es nicht

    Hallo sunburstc


    Vielen Dank für Deine Hinweise. Mit den Pullups und andere Pins probiere ich heute Abend noch einmal. Das 625 Problem habe ich ja mit dem NodeMCU nicht?! (ich habe jeweils mit einem WemosD1mini, mini Pro und NodeMCU getestet) . Und im Keller ist null Licht. ">D" Code ist immer drinn gewesen.

    Ich habe auch in der xsns_53_sml.ino zusätzlich meinen Zähler definiert und den Scripteditor temporär deaktiviert (gemu im Beitrag #669)


    Wie genau hast du das mit dem Volkszähler ausgelesen?

    Einfach die serielle Schnittstelle ausgelesen. Lesekopf an den USB-Port. Einstellungen 9600 7E1. Eigentlich so wie hier beschrieben: Testmöglichkeiten unter Linux