Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Adapter] - iobroker.i2c

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Adapter] - iobroker.i2c

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Holger_B76 @UncleSam last edited by

      @UncleSam Hallo, vorab bereits schon einmal vielen Dank für den Adapter.
      Anbei meine Frageliste.
      Kann ich die Eingänge und Ausgänge dauerhaft umbeschriften? Eben nach dem Neustart war alles weg.
      Zweitens ist es möglich die Ausgänge auf eine Tastfunktion dauerhaft umzustellen? Ich schalte nämlich Stromstoßrelais welche nur ein kurzen Impuls brauchen.
      Drittens die als Inputs definierten Datenpunkte stehen nicht stabiel also True, True, false, True etc. bei den aktualisierungen obwohl der Eingang ununterbrochen auf HIGH ist. (Eingang ohne PullUp Widerstand)
      Danke im Voraus.

      Technische Daten
      ioBroker Slave Pi 3 B mit MCP23017
      Adresse 0x20 als Inputs A0-A7 und B0-B7 die Signale kommen von Finderrelais welche parallel zu den Verbrauchern angeschlossen sind
      Adresse 0x21 als Outputs A0-A7 und B0-B7 daran eine Relaiskarte angeschlossen die widerum Stromstoßrelais parallel zu den eigentlichen mechanischen Tastern "schaltet"

      UncleSam 1 Reply Last reply Reply Quote 0
      • UncleSam
        UncleSam Developer @Holger_B76 last edited by

        @Holger_B76 sagte in [Adapter] - iobroker.i2c:

        Kann ich die Eingänge und Ausgänge dauerhaft umbeschriften? Eben nach dem Neustart war alles weg.

        Nein, Datenpunkte umbenennen geht bei diesem Adapter nicht. Du kannst aber die Alias-Funktion verwenden, wenn du bessere Namen für die Datenpunkte verwenden willst.

        Zweitens ist es möglich die Ausgänge auf eine Tastfunktion dauerhaft umzustellen? Ich schalte nämlich Stromstoßrelais welche nur ein kurzen Impuls brauchen.

        Für die jeweiligen Geräte stelle ich nur dieselbe Funktionalität zur Verfügung, wie sie das Gerät per I2C bietet. Für die einfachen I/O-Expander (PCF8574 und MCP230xx) kannst du nur einen Wert setzen (ein/aus). Wenn du unbedingt einen Chip willst, der kurze Trigger kann, dann schau dir die SX150x an: dort kannst du das Timing vieler Pins genau einstellen. Allerdings würde ich persönlich diese Tastfunktion einfach mit JavaScript oder Blockly selber schreiben.

        Drittens die als Inputs definierten Datenpunkte stehen nicht stabiel also True, True, false, True etc. bei den aktualisierungen obwohl der Eingang ununterbrochen auf HIGH ist. (Eingang ohne PullUp Widerstand)

        Bist du sicher, dass du den Pin sauber auf VCC gezogen hast und er nicht "floating" ist. Ohne Pull-Up-Widerstand (sprich: push-pull) muss der Zustand des Pins immer sauber zur Referenzspannung (VCC) gesetzt sein: also entweder mit VCC oder GND verbunden. Speist du den MCP23017 mir 3.3V oder 5V? Was geschieht wenn das Finder Relais offen ist? Und was, wenn es geschlossen ist?

        H 1 Reply Last reply Reply Quote 0
        • H
          Holger_B76 @UncleSam last edited by

          @UncleSam die false Werte stehen stabil. Die Eingänge sind mit 5 Volt. In der "alten" py umgebung gab es das Problem nicht.

          UncleSam 1 Reply Last reply Reply Quote 0
          • UncleSam
            UncleSam Developer @Holger_B76 last edited by

            @Holger_B76 Kannst du mal eine kleine Skizze oder so machen, wie du die Eingänge des MCP23017 genau mit den Relais verbunden hast? Und kannst du mal ein Debug-Log runterladen, wenn sich die Werte ändern?

            H 1 Reply Last reply Reply Quote 0
            • H
              Holger_B76 @UncleSam last edited by

              @UncleSam HerstellerAngaben.JPG so hätte gern der Hersteller den Aufbau

              Licht_Ansteuerung_1.JPG Relaiskarte.JPG

              und so habe ich es dann aufgebaut

              Licht_Ansteuerung.png

              Die Relaiskarte hat eine seperate 12 Volt Versorgung, die 32 Port Karte sitzt huckepack auf dem PI

              Bislang hatte ich eine Datei die 16 Eingänge ausgelesen hat und in eine text datei geschrieben hat. diese wurde dann ausgelesen durch php und visualisiert. Die PHP widerum konnte 16 weitere werte in die txt schreiben die dann durch den laufenden py script abgearbeitet wurden..
              Status (alle aus) Eingang(soll geschaltet werden)
              0000000000000000 0000000000000000

              die Stelle war immer identisch also Lampe 1,2,3.... bis 16 danche Schalten Lampe 1,2,3... bis 16

              das lief alles und die PHP färbte die Button auch dauerhaft grün wenn die lampe an war. Nun pulsiert auch die php (wenn ich den script starte)

              ich habe mir nun bereits im iobroker Hilfspunkte mittels script angelegt welche durch ein Timeout das pulsieren "glätten" aber dennoch ist ja der traffic und stress im datenbus noch da.

              UncleSam 1 Reply Last reply Reply Quote 0
              • UncleSam
                UncleSam Developer @Holger_B76 last edited by

                @Holger_B76 An den Eingängen des MCP musst du in diesem Fall die Pull-Ups aktivieren. Grund: wenn das Finder-Relais offen ist, ist der Eingang "floating" (kein definierter Zustand). Mit dem Pull-Up setzt du den Einang auf 1, wenn das Relais offen ist; und wenn das Relais geschlossen ist, zieht die direkte Verbindung auf GND den Eingang auf 0.

                H 1 Reply Last reply Reply Quote 0
                • H
                  Holger_B76 @UncleSam last edited by Holger_B76

                  @UncleSam ja das habe ich auch schon gefunden jedoch läuft ja auf dem PI nun gar kein script wenn ich deinen Adapter benutzte. Wie kann ich da die Pi eigenen aktivieren?

                  https://www.abelectronics.co.uk/kb/article/1071/expander-pi---reading-io-inputs

                  UncleSam 1 Reply Last reply Reply Quote 0
                  • UncleSam
                    UncleSam Developer @Holger_B76 last edited by

                    @Holger_B76 Du verwendest doch gar keine Pins vom Raspi, oder? Zumindest in deinem Schema steht davon nichts. Du musst die Pull-ups am MCP aktivieren, und das machst du, indem du den Input (in der Adapter Konfiguration) auf "Input with pull-up" stellst.

                    Oder verstehe ich jetzt etwas komplett falsch?

                    Du hast ja selber geschrieben:
                    @Holger_B76 sagte in [Adapter] - iobroker.i2c:

                    Eingang ohne PullUp Widerstand

                    Und das ist falsch: der Pull-up muss eingeschaltet sein.

                    H 1 Reply Last reply Reply Quote 0
                    • H
                      Holger_B76 @UncleSam last edited by Holger_B76

                      @UncleSam Nein alles richtig nur die Gipos des MCPs werden verwendet. 0x20 als Eingang (16 Stück) und 0x21 als Ausgang zur Relaiskarte (16 Stück) jedoch läuft halt keine Programm.py mehr in der das gesetzt werden könnte. Da ich ja alles nun aus Deinem Adapter heraus mache.

                      Und VERDAMMT ich hatte das in Deinem Adapter so verstanden das er einen externen Pull dann erwartet. *anKopfPatsch

                      H 1 Reply Last reply Reply Quote 0
                      • H
                        Holger_B76 @Holger_B76 last edited by

                        So und nun ist Ruhe in den Datenpunkten.
                        Die Aliasdatenpunkte die ich angelegt hatte sind ja nicht ganz um Sonst sie haben ja das Baschriftungsthema verbessert.

                        Danke vielmals.

                        1 Reply Last reply Reply Quote 1
                        • S
                          SilSchm last edited by

                          Hallo,
                          ich stehe leider gerade etwas auf dem Schlauch, wie ich den Adapter für meinen Zweck mit Werten füttere. Ich habe von Horter ein 4-Kanal-Analog-Output, dem ich versuche die entsprechenden Werte in die Register zu schreiben. Diese Werte sind die dezimal zwischen 0 und 1000 und müssen in Hex gewandelt (mache ich mit node red) und in Upper und Lower Byte in die Register des Kanals geschrieben werden.
                          Der funktionierende Konsolenbefehl ist: i2cset - y 1 0x58 0x00 0x00 0x00 i
                          Dies bedeutet i2c Bus 1, Adresse 0x58, Kanal 0x00 und 2 Byte für den Werte. Meine Frage ist. Wie kann ich diesen Wert im Adapter schreiben.?
                          Ich habe ein Generic-Gerät 0x58 gefunden und die 4 Kanäle 0x00 bis 0x03 angelegt. Ich weiß nur nicht wie ich den Wert Z.B. 0x00 0x00 in den Kanal schreibe, dass er im Register landet. Habe es schon mit Leerzeichen oder Kommagetrennt probiert, aber es kommt nicht an. Hat jemand eine Idee?

                          Mfg Silvio

                          crycode 1 Reply Last reply Reply Quote 0
                          • crycode
                            crycode Developer @SilSchm last edited by

                            @silschm Mit dem Generic Gerätetyp müsstest du deine 4 Kanäle als Register 0x00 bis 0x03 mit dem passenden Datentyp uint16_be oder uint16_le anlegen. Deinen zu schreibenden Wert schreibst du dann einfach als normale Dezimalzahl (0 bis 1000) in den entsprechenden State und der Adapter kümmert sich um den Rest.

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              SilSchm @crycode last edited by

                              @crycode Hallo @crycode, vielen Dank. So einfach habe ich gar nicht gedacht. Funktioniert super! 👍

                              1 Reply Last reply Reply Quote 0
                              • S
                                SilSchm last edited by SilSchm

                                Hallo ✋

                                ich habe den Adapter zusammen mit dem Horter 4-Kanal Analogausgabemodul zum laufen bekommen. Es funktioniert auch soweit super, aber alle paar Tage habe ich einen komischen Fehler, der die Analogausgänge mit einer Spannung von 3,x V stehen lässt und im Log von iobroker folgenden Fehler wirft.

                                i2c.1	2021-02-23 00:15:12.004	error	(18540) Generic 0x58: 0x01: Couldn't send value: Error: , Remote I/O error
                                i2c.1	2021-02-23 00:15:11.999	debug	(18540) Generic 0x58: 0x01: Sending 2 bytes: 0000
                                i2c.1	2021-02-23 00:15:11.997	debug	(18540) stateChange i2c.1.0x58.0x01 {"val":0,"ack":false,"ts":1614035711988,"q":0,"from":"system.adapter.node-red.1","user":"system.user.admin","lc":1614015340201}
                                i2c.1	2021-02-23 00:15:11.958	error	(18540) Generic 0x58: 0x00: Couldn't send value: Error: , Remote I/O error
                                i2c.1	2021-02-23 00:15:11.952	debug	(18540) Generic 0x58: 0x00: Sending 2 bytes: e803
                                i2c.1	2021-02-23 00:15:11.949	debug	(18540) stateChange i2c.1.0x58.0x00 {"val":1000,"ack":false,"ts":1614035711940,"q":0,"from":"system.adapter.node-red.1","user":"system.user.admin","lc":1614015180177}
                                

                                Einzige Abhilfe ist kurz die Spannung vom Horter-Modul zu trennen. Dann geht es wieder. Adapter oder selbst iobroker neu starten bringt nicht. Seht ihr auch den Fehler beim Modul oder habt ihr eine andere Idee?

                                MfG Silvio

                                Thomas Braun crycode 2 Replies Last reply Reply Quote 0
                                • Thomas Braun
                                  Thomas Braun Most Active @SilSchm last edited by

                                  @silschm Bitte keine Screenshots von KonsolenTEXT sondern Text auch als solchen in </> CodeTags posten. Kann man besser und überall lesen.

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    SilSchm @Thomas Braun last edited by

                                    @thomas-braun Ok, sorry, Habe es geändert.

                                    1 Reply Last reply Reply Quote 0
                                    • crycode
                                      crycode Developer @SilSchm last edited by

                                      @silschm Dem Fehler nach reagiert der I2C Slave (also dein Modul) nicht mehr auf die Befehle vom I2C Master (ioBroker). Deiner Beschreibung nach vermute ich, dass der Controller auf dem Modul (weshalb auch immer) abstürzt und nichts mehr macht.

                                      UncleSam 1 Reply Last reply Reply Quote 0
                                      • UncleSam
                                        UncleSam Developer @crycode last edited by

                                        @crycode sagte in [Adapter] - iobroker.i2c:

                                        @silschm Dem Fehler nach reagiert der I2C Slave (also dein Modul) nicht mehr auf die Befehle vom I2C Master (ioBroker). Deiner Beschreibung nach vermute ich, dass der Controller auf dem Modul (weshalb auch immer) abstürzt und nichts mehr macht.

                                        Ich kann @crycode nur zustimmen: ich hatte ähnliche Probleme mit Spannungsschwankungen wegen Relais, die an derselben Spannungsversorgung lagen. Die Lösung war einen Kondensator an der Spannungsversorgung anzulöten.

                                        Zudem habe ich bei einigen Modulen eine Überprüfung eingeschaltet, damit ich erkenne, wenn das Modul neu gestartet wurde. Falls du bei Horter etwas findest, wie du einen Neustart erkennen kannst, kannst du vielleicht dann gleich wieder die Werte setzen.

                                        1 Reply Last reply Reply Quote 0
                                        • E
                                          ecurb @UncleSam last edited by

                                          @unclesam
                                          Hey
                                          ich habe den BME280 schon über deinen Adapter benutzt. Hat super funktioniert.
                                          Jetzt habe ich mir den BME 680 BME 680 Amazon besorgt und leider gemerkt das dieser noch nicht in deinem Adapter integriert ist.

                                          Gibt es eine Möglichkeit das du diesen in naher Zukunft hinzufügen könntest?

                                          Vielen dank
                                          Mit freundlichen Grüßen
                                          Ecurb

                                          UncleSam 1 Reply Last reply Reply Quote 0
                                          • UncleSam
                                            UncleSam Developer @ecurb last edited by

                                            @ecurb Klar, erfasse doch bitte ein Issue in GitHub, dann werde ich mich drum kümmern.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            i2c
                                            36
                                            128
                                            21177
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo