Skip to content

Microcontroller

259 Themen 4.3k Beiträge

NEWS

  • Schaltproblem mit Sonoff TX Ultimate

    Verschoben
    37
    0 Stimmen
    37 Beiträge
    3k Aufrufe
    S
    Nochmal zusammengefasst: zuerst setzt man das Template. Für einen 1Ch {"NAME":"TX Ultimate 1","GPIO":[0,0,7808,0,7840,3872,0,0,0,1376,0,7776,0,0,224,3232,0,480,3200,0,0,0,3840,0,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1,"CMND":"Backlog Pixels 28"} 2Ch {"NAME":"TX Ultimate 2","GPIO":[0,0,7808,0,7840,3872,0,0,0,1376,0,7776,0,225,224,3232,0,480,3200,0,0,0,3840,0,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1,"CMND":"Backlog Pixels 28"} 3Ch {"NAME":"TX Ultimate 3","GPIO":[0,0,7808,0,7840,3872,0,0,0,1376,0,7776,0,225,224,3232,0,480,3200,0,0,0,3840,226,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1,"CMND":"Backlog Pixels 28"} 4Ch {"NAME":"TX Ultimate 4","GPIO":[0,0,7808,0,7840,3872,0,0,0,1376,0,7776,0,225,224,3232,0,480,3200,227,0,0,3840,226,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1,"CMND":"Backlog Pixels 28"} Danach erstelle ich unter Werkzeuge -> Dateisystem verwalten eine Datei mit dem Namen txultimate.be mit folgendem Inhalt: class TXUltimate : Driver static header = bytes('AA55') var ser # create serial port object # intialize the serial port, if unspecified Tx/Rx are GPIO 16/17 def init(tx, rx) if !tx tx = 19 end if !rx rx = 22 end self.ser = serial(rx, tx, 115200, serial.SERIAL_8N1) tasmota.add_driver(self) end def split_55(b) var ret = [] var s = size(b) var i = s-2 # start from last-1 while i > 0 if b[i] == 0xAA && b[i+1] == 0x55 ret.push(b[i..s-1]) # push last msg to list b = b[(0..i-1)] # write the rest back to b end i -= 1 end ret.push(b) return ret end def crc16(data, poly) if !poly poly = 0x1021 end # CRC-16/CCITT-FALSE HASHING ALGORITHM var crc = 0xFFFF for i:0..size(data)-1 crc = crc ^ data[i] << 8 for j:0..7 if crc & 0x8000 crc = (crc << 1) ^ poly else crc = crc << 1 end end end return crc & 0xFFFF end def encode(payload) var msg_crc = self.crc16(bytes(payload)) # calc crc var b = bytes('AA55') # add header b += bytes(payload) # add payload b.add(msg_crc, -2) # add calculated crc 2 bytes, big endian return b end # send a string payload (needs to be a valid json string) def send(payload) print("TXU: Sent =", payload) var payload_bin = self.encode(payload) self.ser.write(payload_bin) log("TXU: Sent = " + str(payload_bin), 2) end # read serial port def every_50ms() if self.ser.available() > 0 var msg = self.ser.read() # read bytes from serial as bytes import string if size(msg) > 0 # print("TXU: Raw =", msg) if msg[0..1] == self.header var lst = self.split_55(msg) for i:0..size(lst)-1 msg = lst[i] print(msg) var event = "" var params = "" if msg[3] == 0x02 # 02 signifies a touch event # print('Touch event') if msg[4] == 0x01 # data lenght 1 is a press if msg[5] < 0x0B event = "Short" params = ',"Channel":' + str(msg[5]) print('Short press zone:', msg[5]) elif msg[5] == 0x0B event = "Multi" print('Multi press') elif msg[5] > 0x0B event = "Long" params = ',"Channel":' + str(msg[5]-16) print('Long press zone:', msg[5]) end elif msg[4] == 0x02 # data length 3 is a release event = "Touch" params = ',"Channel":' + str(msg[6]) print('Touch event:', msg[5], 'pos:', msg[6]) if msg[5] != 0x00 event = "Dash" params = ',"From":' + str(msg[6]) + ',"To":' + str(msg[5]) print('Mini swipe channel', msg[5], '->', msg[6]) end elif msg[4] == 0x03 # data lenght 1 is a swipe if msg[5] == 0x0C event = "Swipe right" params = ',"From":' + str(msg[6]) + ',"To":' + str(msg[7]) print('Swipe left-right', msg[6], '->', msg[7]) elif msg[5] == 0x0D event = "Swipe left" params = ',"From":' + str(msg[6]) + ',"To":' + str(msg[7]) print('Swipe right-left', msg[6], '->', msg[7]) end end var jm = string.format("{\"TXUltimate\":{\"Action\":\"%s\"%s}}",event,params) tasmota.publish_result(jm, "RESULT") end end end end end end end txu=TXUltimate() und damit diese Datei auch beim Start geladen wird, noch eine weitere Datei mit dem Namen autoexec.be mit dem Inhalt load("txultimate.be") Dann geht es weiter mit den Rules. Ich lasse ganz bewusst Rule1 von dieser Seite weg, da sie bei mir ziemliches Chaos verursacht. Bei Mehrchannelschaltern werden z.b. die Channel wild durcheinander geschaltet. Außerdem habe ich bei mir das Backlight per Script geschaltet. Es schaltet sich abends an und morgens aus. Das funktioniert mit der Rule auch nicht, da es sich dann bei jedem Tastendruck an- bzw ausschaltet. Damit der Touch die Relais schaltet, benutze ich folgende Rule von @Dieter_P rule2 On TXultimate#Action$!Touch do break rule2 + On TXUltimate#Channel=1 do power1 toggle endon rule2 + On TXUltimate#Channel=<xxx> do power1 toggle endon rule2 + On TXUltimate#Channel=5 do power2 toggle endon rule2 + On TXUltimate#Channel=<xxx> do power2 toggle endon rule2 + On TXUltimate#Channel=10 do power3 toggle endon rule2 + On TXUltimate#Channel=<xxx> do power3 toggle endon Hier im Beispiel für einen 3Ch-Schalter. Wobei ich aber nicht einfach die Channel übernehme, sondern sie selber austeste. Da man sowieso in der Konsole ist, muss man hier nur auf das Touch an der gewünschten Stelle drücken und die Konsole gibt den Channel aus. Den übernehme ich dann in die Rule, hier gekennzeichnet mit dem <xxx>. Das wars eigentlich auch schon. Der Schalter sollte nun funktionieren.
  • ESPHome & AtomS3 Lite GPIO35 Konflikt?

    esphome esp32s3 atoms3lite
    1
    0 Stimmen
    1 Beiträge
    140 Aufrufe
    Niemand hat geantwortet
  • 2 LED-Stripes mit 1x8266 unabhängig über MQTT

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    162 Aufrufe
    S
    So, ich habe das mal aufgedröselt... [image: 1754574805531-tasmota1.jpg] [image: 1754574805562-tasmota2.jpg] Das sind die Einstellungen in Tasmota [image: 1754574805507-iob2.jpg] [image: 1754574805385-iob1.jpg] Das ganze meldet sich ähnlich wie meine RGB- Stripes aber mit der Bedienung komme ich nicht zurecht. Power1 hängt mit Red zusammen (LED-Stripe1) Power2 hängt mit Green zusammen (LED-Stripe2): Wenn beide leuchten lässt sich die Helligkeit regeln. Wenn ich jetzt im ersten Bild die Helligkeit Green auf 50% setze geht Power2 automatisch auf On mit dem WErt von Green, weil sich scheinbar Color ändert. Ich habe eigentlich nur Setoption68 auf 1 gesetzt. Muss ich noch etwas ändern? Help, I'm Lost... oder funktioniert das so nicht... Jürgen
  • Hichi Lesekopf Kaskade funktioniert nicht wie erwartet.

    Verschoben
    2
    1
    0 Stimmen
    2 Beiträge
    205 Aufrufe
    Jörg MenkeJ
    @jörg-menke Nach Aufspielen einer neuen Firmware die mir von Hichi bereitgestellt worden ist, läuft es jetzt. Problem gelöst mit Version 14.6.02. Danke Hichi!
  • Zigbee Smartmeter Reader mit ESP32-C6

    3
    3 Stimmen
    3 Beiträge
    216 Aufrufe
    C
    @asgothian die README war an der Stelle mit dem Bild veraltet. In dem Konverter steht aktuell die online Quelle für das Bild (als Verweis auf das Repo), wodurch das Kopieren ganz entfällt.
  • Zigbee Konverter für ESP32-C6

    13
    0 Stimmen
    13 Beiträge
    638 Aufrufe
    AsgothianA
    @clausmuus sagte in Zigbee Konverter für ESP32-C6: @asgothian Ich werde das in den nächsten Tagen testen. Die Namensgebung (ESP32-c6.js) ist allerdings nicht so günstig, da der Converter ja nur für die electrical_measurement_ac passt. Besser wäre also z.B. ESP32-c6-electrical-measurement-ac.js Alternatiev könnte der Converter aber auch nach und nach für die anderen Beispiele erweitert werden, was wohl die schönere Lösung wäre. So war das geplant - damit nicht zu viele einzelne Dateien dazu geladen werden.
  • ESP32 als Wifi Access Point?

    9
    0 Stimmen
    9 Beiträge
    594 Aufrufe
    MartinPM
    @dieter_p kein altes Smartphone in der Schublade? Ich weiß aber nicht, ob die Access Points, die Android aufspannt Verbindungen unter den Clients erlauben
  • Wie einen Schall Alarmgeber über ESP/Tasmota realisieren?

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    354 Aufrufe
    hg6806H
    @wildbill Danke für den Tipp. Ich hatte Tasmota Basic genommen und Switch_n Mit Generic wird auch jetzt ein Switch in ioBroker generiert, jedoch steht er immer auf true. Wenn ich jetzt bei dem Sensor die Sensibilität voll auftrehe, müsste ich ja ständig low also false haben. Das einzige was zuckt ist "Power". Aber nur wenn ich die Sensabilität verstelle, nicht bei Schall. Vielleicht ist bei einem Schallsensor auch eine andere Einstellung notwendig.
  • ESP8266 und CC1101 für 433 MHz ?

    Verschoben
    12
    0 Stimmen
    12 Beiträge
    2k Aufrufe
    CodierknechtC
    @alex-8 Ich habe mir mal einen der für Tasmota empfohlenen Transceiver besorgt (SRX882/STX882) und habe den auf 'nem Breadboard fliegend verdrahtet. Funzt perfekt. Ich habe dann kurzerhand den STX882 "huckepack" auf eine bereits verbastelte Sonoff-Bridge gesetzt und mit GPIO14 verbunden. Funktioniert einwandfrei. Die Bridge liefert quasi nur noch die Basis (Gehäuse, MCU, Stromversorgung). Senden tut der kleine STX882.
  • A02 Ultraschallsensor an D1 Mini ESP8266

    28
    1
    0 Stimmen
    28 Beiträge
    2k Aufrufe
    haselchenH
    @bananajoe @bahnuhr Also, Kinderkriegen ist einfacher. Gestern Mittag war alles tutti, ESP32 mit Tasmota bespielt, Jumperkabel verbunden , im Carport verbaut. Dann fing es an. Keine WLAN Verbindung mehr. Egal was ich auch gemacht habe. Das Teil blieb nicht erreichbar. Also eine Alternative gesucht. ESPEasy gefunden. Naja, Easy ist dann doch gelogen in dem Namen :) Hab, wegen der WLAN Reichweite diesmal einen ESP8266 genommen. Ein Drama da ESPEasy (die richtige Version) draufzubekommen. Nun gut. Irgendwann gegen Mitternacht hatte ich es dann. Also ins Carport, verbinden. Da der Platz da fummelig ist, ist dann natürlich die USB Buchse abgebrochen. Also laut: Schei.... geschrien Dann wieder den ESP32 rausgekramt, da ESPEasy drauf. Auch da war es ne Kunst die richtige Version zu treffen. Mittlerweile war es 1Uhr und es funktionierte einfach nicht. Immer Distance 0,00 cm. Pennen gegangen. Eben nochmal alles von vorne. Neue Jumperkabel, neue GPIO Belegung. [image: 1749289352674-4f906cbb-e1e2-4251-a464-8590311d4611-grafik.png] Ich melde Vollzug um 11:42Uhr. Diese Verbindung lasse ich da hängen, bis das Carport weggefault ist :)
  • ESP32-C6 Zigbee Support external converter Bitte um Hilfe

    Verschoben
    40
    1
    0 Stimmen
    40 Beiträge
    3k Aufrufe
    AsgothianA
    @jens-g deine Entscheidung. Allerdings merkt sich der Adapter durchaus den “Namen” des Gerätes - nicht aber die ID, die für die Ansteuerung verantwortlich ist. Das mit dem Posten der Info Anzeige (nach deinen Änderungen) war ernst gemeint. Das was du als externen Konverter von mir bekommen hattest war dürneine Lampe, nicht für einen Sensor. A.
  • Hörmann HCPBridge Sensoren

    1
    0 Stimmen
    1 Beiträge
    207 Aufrufe
    Niemand hat geantwortet
  • JK-BMS über RS485 mit ESPHome auslesen

    Verschoben jk-bms esphome arduino iobroker
    94
    0 Stimmen
    94 Beiträge
    20k Aufrufe
    D
    @homoran said in JK-BMS über RS485 mit ESPHome auslesen: Punkt 1: Da muss jemand die Energie und das Können haben den BT Verkehr mitzuschneiden und das Kennwort auszulesen. Nö, wenn jemand weiß dass es ein JK BMS ist kann er ohne ein Passwort sämltliche Einstellungen nach Belieben verstellen. Alles was er braucht ist die öffentlich bekannte MAC Adresse und den hier besprochenen Github-Inhalt auf einem ESP32. Zum Glück lässt sich BLE ja im BMS deaktivieren und alles auch über UART-TTL Anbindung per Kabel nutzen.
  • AI on the edge flashen

    Verschoben
    16
    2
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    Ben1983B
    @blockmove Muss ich mal versuchen, wenn ich genug zeit finde
  • Stromzähler mit Kauf/Verkauf Option in iobroker.

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    942 Aufrufe
    andre1deA
    @ullij said in Stromzähler mit Kauf/Verkauf Option in iobroker.: @andre1de sagte in Stromzähler mit Kauf/Verkauf Option in iobroker.: Mein oben beschriebenes Problem konnte ich übrigens durch den Vergleich mit früheren Daten lösen. Wenn die Werte für Bezug und Einspeisung aktualisiert bzw. geändert werden geht das auch damit...zumindest grob im Rahmen der zeitlichen Auflösung. Mit Hilfe der aktuellen Leistung geht es halt etwas präziser. die Variante von mir war OBIS, vielleicht funktioniert ja auch die Version mit SML ... good luck Nein, deine Code funktioniert nicht, aber wie gesagt, ich kriege problemlos meine Hauptwerte. Und ich habe noch im Forum von tasmota gefragt, ob schon neu Code gibt.
  • Iskra MT631 via Tasmota

    iskra mt631 tasmota
    42
    0 Stimmen
    42 Beiträge
    4k Aufrufe
    M
    @homoran ok danke euch
  • Sonoff-Adapter findet einen Wert vom Device nicht

    Verschoben
    9
    2
    0 Stimmen
    9 Beiträge
    732 Aufrufe
    T
    @mcu said in Sonoff-Adapter findet einen Wert vom Device nicht: Ich bin da nicht mehr im Thema, aber die Idee wäre den Wert vom Attribut "Range" der vom Adapter nicht abgefangen wird, umzusetzen auf einen definierten Wert (vom Adapter) . Danke, das hat funktioniert! __ @jan1 said in Sonoff-Adapter findet einen Wert vom Device nicht: @topsurfer Erstelle den DP manuell und schau ob er vom Adapter befüllt wird. Habe ich bei einem fehlenden DP im Shuttermodus auch so gelöst und da funktioniert es. Probiert, aber der Wert bleibt immer 0 (auch ESP restart, Bodenfeuchte geändert, ...) Hab den DP vom Typ "Zahl" angelegt { "common": { "name": "Range", "desc": "Manuell erzeugt", "role": "state", "type": "number", "read": true, "write": true, "def": 0 }, "type": "state", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1746117283884, "_id": "sonoff.0.Zisterne #e11.Range", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } } [image: 1746118535190-2025-05-01_185334.png]
  • Smartmeter über Tasmota /ESPxxxx initialisieren

    4
    0 Stimmen
    4 Beiträge
    429 Aufrufe
    P
    @hardy-1 2 Minuten ist wenig zweckmäßig. PIN aus und Info ein hast Du probiert?
  • Tasmota - SML - Modbus

    Verschoben
    5
    0 Stimmen
    5 Beiträge
    730 Aufrufe
    Ma SchM
    Hallo, es ist ein DD3 Zähler, der wird auch von Tasmota unterstützt und ich kann auslesen: https://tasmota.github.io/docs/Smart-Meter-Interface/#ebz-dd3-obissml Der esp32 so @1topf sagte in Tasmota - SML - Modbus: Aber ich vermute, daß Dein gekaufter Lesekopf (noch) nicht Modbusfähig ist. Das hätte der Verkäufer gleich mit reinkompilieren müssen. S Das modbus-Modul ist zwar kompiliert, meines Erachtens benötige ich es aber nur, wenn ich Modbus ASCII verwenden will. Ich möchte jetzt "nur", dass der esp32 als Modbus Server/Slave arbeitet. Er lauscht nach Anfragen und sendet dann. Das dürfte nur eine normale serielle Kommunikation sein, da habe ich gerade diesen Abschnitt gefunden https://tasmota.github.io/docs/Scripting-Language/#serial-io-support Ich muss den esp32 jetzt dazu bekommen, die ganze Zeit die seriellen Anfragen zu prüfen und entsprechend darauf reagieren. Jemand eine Idee?
  • [gelöst] Tasmota - LEDs über Taster steuern

    4
    0 Stimmen
    4 Beiträge
    386 Aufrufe
    David G.D
    Ich habe es mit einer Rule geschafft: Rule1 ON Button1#State DO Add1 1 endon on var1#state==1 DO Backlog Power1 1; Power2 1; Power3 0; Power4 0 endon on var1#state==2 DO Backlog Power1 0; Power2 1; Power3 1; Power4 0 endon on var1#state==3 DO Backlog Power1 0; Power2 0; Power3 1; Power4 1 endon on var1#state==4 DO Backlog Power1 1; Power2 blink; Power3 blink; Power4 1 endon on var1#state==5 DO Backlog Power1 0; Power2 0; Power3 0; Power4 0; Var1 0 endon EDIT Mit Backlog0 bekommt man die Versögerung fwischen den Befehlen weg. Dann sieht alles was flüssiger aus. Rule1 ON Button1#State DO Add1 1 endon on var1#state==1 DO Backlog0 Power1 1; Power2 1; Power3 0; Power4 0 endon on var1#state==2 DO Backlog0 Power1 0; Power2 1; Power3 1; Power4 0 endon on var1#state==3 DO Backlog0 Power1 0; Power2 0; Power3 1; Power4 1 endon on var1#state==4 DO Backlog0 Power1 1; Power2 blink; Power3 blink; Power4 1 endon on var1#state==5 DO Backlog0 Power1 0; Power2 0; Power3 0; Power4 0; Var1 0 endon

832

Online

32.4k

Benutzer

81.4k

Themen

1.3m

Beiträge