Ok. Ich lese mir die letzten Seiten mal durch. Müsste es denn mit dem tcrt5000 klappen? Habe ihn laut einer Anleitung ( Weiß gerade nicht mehr woher) angepasst. Und einen 1k ohm wiedersagend parallel drauf gelötet und ein Bauteil entfernt.
D0 Zähler SML auslesen mit Tasmota
-
Thomas -
18. Oktober 2018 um 18:50 -
Erledigt
-
-
-
Möglicherweise!
Schon verschiedene kuriose Dinge erlebt hier. Leseköpfe die absolut nichts auslesen wollten wohingegen ein einfacher phototransistor funktionierte und auch genau umgekehrt.
Es ist und bleibt basteln. -
Habe gerade mal mit dem Handy überprüft. Die IR-Diode leuchtet dauerhaft. Wenn ich das richtig gelesen habe müsste sie alle paar Sekunden angehen oder?
-
Habe gerade mal mit dem Handy überprüft. Die IR-Diode leuchtet dauerhaft. Wenn ich das richtig gelesen habe müsste sie alle paar Sekunden angehen oder?
Das ist korrekt.
Poste doch mal dein Script aus dem Scripter, die Art welche Anschlüsse du verwendest.
Hast du beim ersten Aufruf der WebGUI schon ein paar OBIS Sachen angezeigt bekommen?
-
Mein Script:
Code>D >B =>sensor53 r >M 1 +1,3,o,0,9600,STROM,3,100,2F3F210D0A,063035310D0A 1,1-0:1.8.1*255(@1,Total consumption,KWh,Total_in,4 #
Ich habe es sowohl mit 9600, als auch mit 300 versucht.
Ich habe einen TCRT5000. Den habe ich wie dort beschrieben angepasst, Dieser Ist am RX Pin meines NodeMCU angeschlossen. Ja beim ersten aufruf wurden mir schon einige Obis-Sachen angezeigt. Ich habe aber nur die override config angepasst. Alles andere habe ich so gelassen wie es war.
Code
Alles anzeigen/* user_config_override.h - user configuration overrides my_user_config.h for Tasmota Copyright (C) 2020 Theo Arends This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef _USER_CONFIG_OVERRIDE_H_ #define _USER_CONFIG_OVERRIDE_H_ // force the compiler to show a warning to confirm that this file is included #warning **** user_config_override.h: Using Settings from this File **** /*****************************************************************************************************\ * USAGE: * To modify the stock configuration without changing the my_user_config.h file: * (1) copy this file to "user_config_override.h" (It will be ignored by Git) * (2) define your own settings below * (3) for platformio: * define USE_CONFIG_OVERRIDE as a build flags. * ie1 : export PLATFORMIO_BUILD_FLAGS='-DUSE_CONFIG_OVERRIDE' * for Arduino IDE: * enable define USE_CONFIG_OVERRIDE in my_user_config.h ****************************************************************************************************** * ATTENTION: * - Changes to SECTION1 PARAMETER defines will only override flash settings if you change define CFG_HOLDER. * - Expect compiler warnings when no ifdef/undef/endif sequence is used. * - You still need to update my_user_config.h for major define USE_MQTT_TLS. * - All parameters can be persistent changed online using commands via MQTT, WebConsole or Serial. \*****************************************************************************************************/ // -- Master parameter control -------------------- #undef CFG_HOLDER #define CFG_HOLDER 4620 // [Reset 1] Change this value to load SECTION1 configuration parameters to flash // -- Setup your own Wifi settings --------------- #undef STA_SSID1 #define STA_SSID1 "***" // [Ssid1] Wifi SSID #undef STA_PASS1 #define STA_PASS1 "***" // [Password1] Wifi password // -- Setup your own MQTT settings --------------- #undef MQTT_HOST #define MQTT_HOST "192.168.178.62" // [MqttHost] #undef MQTT_PORT #define MQTT_PORT 1883 // [MqttPort] MQTT port (10123 on CloudMQTT) #undef MQTT_USER #define MQTT_USER "***" // [MqttUser] Optional user #undef MQTT_PASS #define MQTT_PASS "***" // [MqttPassword] Optional password // You might even pass some parameters from the command line ---------------------------- // Ie: export PLATFORMIO_BUILD_FLAGS='-DUSE_CONFIG_OVERRIDE -DMY_IP="192.168.1.99" -DMY_GW="192.168.1.1" -DMY_DNS="192.168.1.1"' #ifdef MY_IP #undef WIFI_IP_ADDRESS #define WIFI_IP_ADDRESS MY_IP // Set to 0.0.0.0 for using DHCP or enter a static IP address #endif #ifdef MY_GW #undef WIFI_GATEWAY #define WIFI_GATEWAY MY_GW // if not using DHCP set Gateway IP address #endif #ifdef MY_DNS #undef WIFI_DNS #define WIFI_DNS MY_DNS // If not using DHCP set DNS IP address (might be equal to WIFI_GATEWAY) #endif #undef APP_TIMEZONE 1 #define APP_TIMEZONE 99 #undef FRIENDLY_NAME #define FRIENDLY_NAME "NodeMCU Strom" // Anzeigename in Weboberflaeche #define USE_SML_M // SML Treiber laden #ifndef USE_SCRIPT #define USE_SCRIPT //# adds about 17k flash size, variable ram size #endif #ifdef USE_RULES #undef USE_RULES #endif #define USE_SCRIPT_WEB_DISPLAY #define USE_SCRIPT_JSON_EXPORT #endif // _USER_CONFIG_OVERRIDE_H_
-
Code
>D >B =>sensor53 r >M 1 +1,3,o,0,9600,STROM,3,100,2F3F210D0A,063035310D0A 1,1-0:1.8.1*255(@1,Total consumption,KWh,Total_in,4 #
Du definierst dort keine TX also Senderichtung.
Sondern hast sowohl RX also auch "TX" auf RX gelegt.
Du musst deinen TCRT so anschließen, dass du auch senden kannst.
So in etwa:
Code>D >B =>sensor53 r >M 1 +1,3,o,0,300,STROM,1,35,2F3F210D0A,063035310D0A 1,1-0:1.8.1*255(@1,Total consumption,KWh,Total_in,4 #
Dann wäre dein TX PIN also Senderichtung für dieses Script definiert. Schau übrigens, dass du unter Einstellungen/Logging, Seriallogging ausgeschaltet hast. Du kannst natürlich auch andere PINs verwenden. dementsprechen dann die 3 und die 1 anpassen.
Ich hab die Pollzeit in dem Skript mal auf 35 gesetzt. Das sind 35*100ms also 3,5 Sek.
Und ich weiß nicht ob das ACK für deinen Zähler notwendig ist. evtl. kannst du also ",063035310D0A" weglassen.
Erst einmal ist es wichtig, dass du überhaupt was empfängst eh du die Baudrate änderst.
Da dein Zähler anscheinend 300Baud vorgibt würde ich also dort anfangen.
Skript speichern und dann in der Webconsole "sensor 53 d1" eingeben und schauen was du so empfängst. Bzw. ob du was empfängst.
-
Wie genau soll ich den TCRT denn anschließen? Der hat nur einen A0,D0,VCC,GND. Laut der Anleitung von ioBroker soll A0 nicht angeschlossen werden.
Hier hat jemand ebenfalls erfolgreich einen Logarex Zähler ausgelesen. Nicht exakt mein Modell aber sehr nah dran.
PS: Ich habe den Pin A0 nun mal mit TX verbunden und dein Script aktiviert. Nun bekomme ich einen Fehler:
Code07:41:12 Script: nv=0, tv=0, vns=0, ram=16 07:41:12 Script: performs "sensor53 r" 07:41:12 SNS: Hardware Serial 07:41:12 MQT: stat/tasmota_D3ABC3/RESULT = {"Time":"2020-04-07T07:41:12","SML":{"CMD":"restart"}} 07:41:19 CMD: sensor 53 d1 07:41:19 MQT: stat/tasmota_D3ABC3/RESULT = {"Command":"Error"}
-
A0 ist ja auch ein analoger Ausgang deines Gerätes. Der Kollege in deinem verlinkten Post hatte, soweit ich mich erinnere, eine selbstgelötete Schnittstelle gebaut.
Fakt ist:
1. mit A0 kannst du nichts anfangen.
2. Glaube ich nicht das du in der zusammengebauten Fassung deines TCRT irgendetwas damit anfangen kannst. Möglicherweise wenn du die Empfang/Sende -Einheit ablötest oder umlötest und mit passenden Widerständen direkt anschließt.
3. Dein Zähler möchte anscheinend getriggert werden, d.h. du musst in der Lage sein, deinem Zähler etwas über eine IR-Diode zu senden.
Ich kann dir nur raten. Entweder baust du dir selbst eine entsprechende Sende/Lese-Einheit oder kaufst für "viel" Geld eine von Amazon, oder lötest die Diode/Fototransistor von deinem TRCT ab, sorgst für einen Pullup Widerstand an dem Fototransistor und einem Schutzwiderstand an der IR-Diode.
Übrigens kommt der Fehler den du da in der Webconsole erhältst durch deinen Schreibfehler ;)! Es heißt: "sensor53 d1" nicht "sensor 53 d1"
-
Das TCRT5000 hat eine blaue und eine schwarze Diode. Welche ist denn wofür? Dann würde ich die mal auslöten.
Ich habe die beiden Dioden mal ausgelötet. Wie genau sähe der Aufbau denn nun aus? Ich habe ein paar Widerstände hier liegen
PS: Vielen Dank für deine Hilfe!
-
Schaltbilder sind im Howto.
Was von den beiden was ist findet man bei Google! link
Da ich nicht davon ausgehe, dass du einen N-Mosfet zur Verfügung hast, schließe die IR-LED direkt über 330 Ohm an. Also Cathode an GND, Anode an den von dir gewählten TX Pin des ESPs. Ich denke mit 330Ohm bist du für den Anfang ganz gut aufgestellt. Evtl. weniger falls sie zu schwach oder garnicht leuchtet.
Fototransistor: Emitter an GND. 3,3V an --> 1k-10k Widerstand(vielleicht erstmal mit einem 4,7k beginnen).Nach dem Widerstand gehen zwei Drähte ab. Einen Draht zu deinem von dir auserwählten RX Pin des ESPs und ein weiterer Draht zum Collector des Fototransistors.
Und vielleicht würde das aneignen gewisser elektronischer Grundkenntnisse nicht schaden.
Wie immer gilt, wird irgendetwas sehr WARM oder HEIß sobald du die Spannung anlegst, dann muss man sich die Frage stellen: Ist das beabsichtigt ;)? Falls nein, dann Spannungsfrei schalten und den Fehler suchen!
-
Ich habe es jetzt wie beschrieben angeschlossen. Die Diode leuchtet weiterhin dauerhaft.
-
Mal anderen GPIO im Skript definiert und am Board umgesteckt? Also den TX GPIO im Skript ändern.
evtl. Auch mal neu gestartet? -
Wenn Ich RX und TX nutze startet der NodeMCU nicht mehr. Habe nun RX und Pin12(D6) für TX. Habe mehrmals neugestartet.
-
Das ist aber sehr seltsam? Klingt irgendwie nach Kurzschluss?
Zeig mal her was du da zusammengebastelt hast.
-
-
Schwer zu erkennen, aber für mich sieht es so aus, als hättest du beim Phototransistor Emitter mit Collector vertauscht. Emitter muss an GND. Collector an dein RX Draht und an den Widerstand. Der Widerstand (das andere Füßchen, also nicht das wo schon RX und Collector dran sind) muss an 3,3v.
Schau auch nochmal genau nach ob anode und kat. bei der IR LED korrekt sind.
Und wenn du ein Multimeter hast, Miss mal durch, ob da nicht wirklich irgendwo ein Kurzschluss ist.
-
-
-
Die 12 hatte ich schon gesetzt. Es macht leider keinen unterschied ob 16 oder 0. Die Diode leuchtet dauerhaft
Ich habe mal ein Video davon gemacht. Es sieht aus als ob sie immer leuchtet und nur kurz aus geht.
Externer Inhalt youtu.beInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.PS:Ich habe gerade noch mal kurz gemessen, dort liegen dauerhaft 1,14V an. Ich denke mein Multimeter ist zu langsam um das Flackern darzustellen. Ist das korrekt?
-
Ich habe die LED nun wie folgt Anode an 3,3V und Cathode an D6. Jetzt blinkt sie alle paar Sekunden. Ich kann dem Zähler nun auch Informationen entlocken, allerdings nur den Namen. Sonst wird nichts gesendet. Muss ich noch etwas konfigurieren oder woran kann das noch liegen?
Code
Alles anzeigen21:43:20 WI/LOG4LK13BD202015 21:43:20 : 21:43:24 : /LOG4LK13BD202015 21:43:24 : 21:43:28 : /LOG4LK13BD202015 21:43:28 : 21:43:32 : /LOG4LK13BD202015 21:43:32 : 21:43:36 : /LOG4LK13BD202015 21:43:36 : 21:43:39 : /LOG4LK13BD202015 21:43:39 : 21:43:43 WI/LOG4LK13BD202015 21:43:43 : 21:43:46 : /LOG4LK13BD202015 21:43:46 : 21:43:50 : /LOG4LK13BD202015 21:43:50 : 21:43:54 : /LOG4LK13BD202015 21:43:54 : 21:43:58 : /LOG4LK13BD202015 21:43:58 : 21:44:05 WI/LOG4LK13BD202015 21:44:05 : 21:44:09 : /LOG4LK13BD202015 21:44:09 : 21:44:12 : /LOG4LK13BD202015 21:44:12 : 21:44:16 : /LOG4LK13BD202015 21:44:16 : 21:44:17 : /LOG4LK13BD202015 21:44:17 : 21:44:21 WI/LOG4LK13BD202015 21:44:21 : 21:44:24 MQT: tele/tasmota_D3ABC3/STATE = {"Time":"2020-04-08T21:44:24","Uptime":"0T00:20:09","UptimeSec":1209,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":21,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Und LOS!","BSSId":"78:D2:94:06:57:92","Channel":11,"RSSI":38,"Signal":-81,"LinkCount":1,"Downtime":"0T00:00:03"}} 21:44:24 MQT: tele/tasmota_D3ABC3/SENSOR = {"Time":"2020-04-08T21:44:24","STROM":{"Total_in":0.0000}} 21:44:24 MQT: tele13BD202015 21:44:24 : 21:44:28 : /LOG4LK13BD202015 21:44:28 :
Mein script sieht wie folgt aus:
Code>D >B =>sensor53 r >M 1 +1,3,o,0,300,STROM,14,30,2F3F210D0A,063035310D0A 1,1-0:1.8.1*255(@1,TotalIN,KWh,Total_in,4 #
Laut meinem Netzbetreiber hat mein Zähler keinen PIN. Das gibt es beim Logarex LK13BD wohl noch gar nicht ( behauptet die Avacon).
-