NEWS
[Adapter] - iobroker.i2c
-
Hallo BerndHF,
die Idee ist gar nicht schlecht. Invertiert hatte ich die Eingänge vorher schon, ohne Erfolg.
Ich hab jetzt auf Ausgang umgestellt und invertiert, dann leuchten die LED´s nicht
(spricht die Eingänge können gesetzt werden).Den Eingang liest der Adapter aber leider nicht. Da dieser halt auf Ausgang gesetzt ist
aber nicht mehr viel dann läuft das Modul
mfg
Strago -
@BerndHF sagte in [Adapter] - iobroker.i2c:
Besteht die Möglichkeit,folgende Module in den I2C Adapter aufzunehmen ?
- das RFID V3 Lese-/Schreibmodul PN532
Bei mir ist es zur Zeit noch über ein ESP 8266 in ioBrocker eingebunden.
Der PN532 wäre für mich auch persönlich sehr interessant; allerdings ist es ein recht aufwändiger Chip, der unter anderem auch eine Reset-Leitung benötigt. Deshalb verzichte ich im Moment einmal auf eine Umsetzung. Irgendwann werde ich wohl nicht mehr darum herum kommen, GPIOs mit anderen Geräten zu kombinieren (wäre zum Beispiel für I/O-Expander als Input auch interessant: da könnte ich die Interrupt-Leitung verwenden anstatt zu pollen).
- den Strom und Spannungssensor INA 219
ebenfalls zur Zeit noch über ein ESP 8266 in ioBrocker eingebunden.
Für dieses Modul habe ich https://github.com/UncleSamSwiss/ioBroker.i2c/issues/23 erfasst.
Ich bitte dich, allfällige Kommentare/Fragen zu dem Chip dort zu stellen.
Abonniere doch den GitHub Eintrag, so erfährst du, wann ich die den Chip eingebaut habe. - das RFID V3 Lese-/Schreibmodul PN532
-
@strago sagte in [Adapter] - iobroker.i2c:
Endlich geschafft ... ich glaub es lag an einem Rechte Problem.
Kannst du mir beschreiben, was du mit den Rechten gemacht hast? Eigentlich sollte der iobroker Benutzer mit dem ioBroker-Installer automatisch Zugriff auf den I2C haben; eventuell liegt da aber noch ein Fehler.
Aber wieder das gleiche Problem wie vorher
Ich sehe in deinen Einstellungen auf den ersten Blick keinen Fehler. Das ist sehr komisch. Du schreibst nur, dass du ein
i2cget
machst; führst du davor nie einen Schreibbefehl aus? Grundsätzlich sollte man den PCF8574 immer initialisieren, sprich: die einzelnen Pins auf Input oder Output setzen. In deinem Fall wäre das ein "write" von 0x00 (alle Pins auf Input).Leider kann ich auf dem Foto nicht erkennen, wie der Chip genau beschriftet ist. Kann es sein, dass es gar nicht ein PCF8574 ist?
Gibt es von Horter Code, wie man das Input-Modul verwenden soll?
-
@UncleSam Sorry für die späte Antwort-ich beabsichtige ca. 5m CAT6 Kabel zu nutzen, ist aber noch zu prüfen. Ggfs. muss ich die Datenrate entsprechend reduzieren und mit der Terminierung spielen.
Ich denke, ich werde bei dem Soft I2C bleiben, es hat den Vorteil, dass ich damit auch unterschiedliche Datenraten benutzen kann. Der Multiplexer ist für einen Blindansatz dann doch vermutlich zu komplex.
Ich benutze ADS1115 mit einem Ultraschallsensor und würde gerne 2-3 Readings pro Sekunde machen. Wo ist das Problem bei der Reduzierung des Abfrageintervalls auf z.B. 100ms? Vermutlich die ioBroker Last durch viele Nachrichten. Gibt es hier eigentlich Performance Tests welche Anzahl von Nachrichten pro Sekunde maximal z.B. auf einem Raspi 3B bearbeitet werden können? Im Forum habe ich auf die Schnelle nichts gefunden. -
@Malombo Ja, 5m mit I2C ist sportlich - ich habe das noch nie versucht, aber es kann funktionieren.
Ein CAT6-Kabel nützt dir nur beschränkt etwas, da I2C ja nicht differenziell (wie z.B. RS-485 oder Ethernet) funktioniert, sondern einfach eine Daten- und eine Clock-Leitung hat. Wenn du ein abgeschirmtes Kabel nimmst, kannst du versuchen, GND an beiden Orten auf den Schirm zu nehmen, das wird dir höchstwahrscheinlich helfen. Aber auf keinen Fall den Schirm nur einseitig anschliessen, dann hast du die perfekte Antenne
Grundsätzlich hat ioBroker sicher kein Problem mit duzenden von Werten pro Sekunde - zumindest mit Redis wirst du so sicherlich noch lange nicht die Grenze erreichen.
Ich werde das Polling Interval in der nächsten Version mal in Millisekunden umbauen; dann musst du einfach mit den Einstellungen spielen, damit der Chip rechtzeitig mit seinen Berechnungen fertig wird. Sobald du die Fehlermeldung "Busy reading values, can't read right now!" im Log siehst, weisst du, dass der Chip länger hat zum messen als du ihn abfragst. Der Adapter ist schlau genug, sich aus der Situation zu "befreien", aber in deinem Logfile sieht es dann nicht so gut aus
Ich habe einen Issue auf GitHub erfasst; dort siehst du den Stand der Änderung:
https://github.com/UncleSamSwiss/ioBroker.i2c/issues/24 -
@lmk1366 bme/bmp280 können Feuchtigkeit auslesen? Dachte die können nur Druck und Temperatur?
-
@eMd sagte in [Adapter] - iobroker.i2c:
bme/bmp280 können Feuchtigkeit auslesen?
Gemäss offizieller Website von Bosch:
- BME 280: Feuchtigkeit, Luftdruck, Temperatur https://www.bosch-sensortec.com/bst/products/all_products/bme280
- BMP 280: Luftdruck, Temperatur https://www.bosch-sensortec.com/bst/products/all_products/bmp280
Der Adapter behandelt beide Chips gleich und gibt einfach Feuchtigkeit = 0 aus beim BMP 280.
-
Hi.
Ich habe einen Banana Pi mit dem IOBroker. Alles auf aktuellem Stand.
Wenn ich den Adapeter Instakkieren und konfiguriere, lässt er sich nicht starten.Banana PI aktuelles Armbian.
ARMBIAN 5.85 stable
/boot/armbianEnv.txt:
overlays=i2c2
Ist dann auch über Armbian-config zu sehen.
Als BUS Nummer hab ich "2" eigetragen, da ich gelesen hab:
Im Reiter "General" tragen Sie jetzt Feld "Bus-Number" bei Raspberry Pi und Tinker Board ein 1 ein, beim Banana Pi eine 2 und klicken anschliessend auf "Search Devices"Als Fehlermeldung im LOG:
host.iobrokerbpi 2019-06-23 20:58:55.204 info Restart adapter system.adapter.i2c.0 because enabled
host.iobrokerbpi 2019-06-23 20:58:55.203 error instance system.adapter.i2c.0 terminated with code 6 (uncaught exception)
Caught 2019-06-23 20:58:55.202 error by controller[0]: at Manager.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20)
Caught 2019-06-23 20:58:55.201 error by controller[0]: at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
Caught 2019-06-23 20:58:55.200 error by controller[0]: at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12)
Caught 2019-06-23 20:58:55.199 error by controller[0]: at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9)
Caught 2019-06-23 20:58:55.198 error by controller[0]: at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:157:27)
Caught 2019-06-23 20:58:55.197 error by controller[0]: at that.states.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4612:61)
Caught 2019-06-23 20:58:55.196 error by controller[0]: at /opt/iobroker/node_modules/iobroker.i2c/i2c.js:129:14
Caught 2019-06-23 20:58:55.196 error by controller[0]: at I2CAdapter.main (/opt/iobroker/node_modules/iobroker.i2c/i2c.js:43:20)
Caught 2019-06-23 20:58:55.195 error by controller[0]: at Object.openSync (/opt/iobroker/node_modules/iobroker.i2c/node_modules/i2c-bus/i2c-bus.js:47:3)
Caught 2019-06-23 20:58:55.194 error by controller[0]: at checkBusNumber (/opt/iobroker/node_modules/iobroker.i2c/node_modules/i2c-bus/i2c-bus.js:55:11)
Caught 2019-06-23 20:58:55.191 error by controller[0]: Error: Invalid I2C bus number 2
i2c.0 2019-06-23 20:58:54.128 error at Manager.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:133:20)
i2c.0 2019-06-23 20:58:54.128 error at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
i2c.0 2019-06-23 20:58:54.128 error at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12)
i2c.0 2019-06-23 20:58:54.128 error at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9)
i2c.0 2019-06-23 20:58:54.128 error at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:157:27)
i2c.0 2019-06-23 20:58:54.128 error at that.states.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4612:61)
i2c.0 2019-06-23 20:58:54.128 error at /opt/iobroker/node_modules/iobroker.i2c/i2c.js:129:14
i2c.0 2019-06-23 20:58:54.128 error at I2CAdapter.main (/opt/iobroker/node_modules/iobroker.i2c/i2c.js:43:20)
i2c.0 2019-06-23 20:58:54.128 error at Object.openSync (/opt/iobroker/node_modules/iobroker.i2c/node_modules/i2c-bus/i2c-bus.js:47:3)
i2c.0 2019-06-23 20:58:54.128 error at checkBusNumber (/opt/iobroker/node_modules/iobroker.i2c/node_modules/i2c-bus/i2c-bus.js:55:11)
i2c.0 2019-06-23 20:58:54.128 error Error: Invalid I2C bus number 2
i2c.0 2019-06-23 20:58:54.123 error uncaught exception: Invalid I2C bus number 2Hat jemand eine Idee?
Gruß Peter
-
@UncleSam
Hallo zusammen, beschäftige mich gerade mit iobroker und möchte ebenfalls die I2c Schnittstelle nutzen.
Leider endet die Installation des Adapters mit einer Fehlermeldung. Die Vorgehensweise ist wie beschrieben gemacht worden. Installiert ist Raspian Buster und die CCU3. Über i2cdetect sehe ich den PCF 8574 und kann ihn lesen und beschreiben. Hat jemand eine Idee warum die Adapterinstallation fehlschlägt , Danke vorab -
@tt-opa sagte in [Adapter] - iobroker.i2c:
Leider endet die Installation des Adapters mit einer Fehlermeldung.
Welche Fehlermeldung?
-
Hallo zusammen, ich bin erst seit kurzem in der Smarthome Welt unterwegs, aber da ich ioBroker super finde, möchte ich nun auch mal etwas zurückgeben. Es geht um das Digital Input Modul von Horter, auch ich hatte nun das Problem wie @mike1976 und @strago, dass sobald man das Modul im Adapter als "Eingänge" definitert, alle LED's auf dem Board leuchten und man daher nichts einlesen kann...
Nun habe ich in der "PCF8574.js" gesehen, dass dort in der "start" Funktion eine "initial value" in den 8574 geschrieben wird. Im Falle des Input Moduls wird der Wert 0x00 geschrieben, was wohl auch normalerweise so passen würde, aber die Horter Module haben eine negative Logik, heißt für Horter ist 0x00 = alle Eingänge High, daher gehen auch alle LEDs auf dem Board an. Es müsste der Wert 0xFF geschrieben werden, danach kann man auch einwandfrei die Inputs einlesen (getestet!).
@UncleSam Kannst du das entsprechend einprogrammieren? Man könnte z.B. berücksichtigen, ob der Eingang im Adapter als "invertiert" gekennzeichnet ist und dann entsprechend die initial value erzeugen?!
Viele Grüße
oHa -
Hallo,
bezüglich i2c.
Wäre es denkbar diesen Druckensor mittels i2c einzubinden?
https://docs.rs-online.com/021c/0900766b81568892.pdfLG Mike
Der sensor:
:~ $ i2cdetect -l
i2c-1 i2c bcm2835 I2C adapter I2C adapter -
@UncleSam
Hallo und Danke der Nachfrage, das Problem hatte sich gelöst als ich nodejs 10.x installiert habe, vorher war Version 12.x
drauf. Neben I2c konnte ich dann auch problemlos den DS18B20 Adapter einfügen. Ich habe ca. 2x10m Cat 5 Kabel am Bus und der läuft seid ca. 2 Jahren allerdings wie bei @mike1976 unter codesys ohne Probleme. Es hängen mehrere Module mit PCF8574 dran, die ähnlich wie Horter & Kalb aufgebaut sind. Allerdings habe ich nun auch das Problem wie @oHa510. Seine Lösung mit 0xff schreiben konnte ich nachvollziehen. Gibt es da schon etwas Endgültiges oder wo kann man das ändern.
Viele Grüße opa -
@UncleSam
Vielen Dank für den I2C Adapter. Ich baue den Controller auf Rasberry 3 zusammen. Ich möchte dem Treiber einen Temperatur- und Feuchtigkeitssensor SHT20 hinzufügen. Datenblatt
Vielen Dank im Voraus! -
Hallo,
ich bin da gerade an einem neuen Projekt dran und möchte einen Arduino Mega direkt per I2C mit IO Broker ansteuern um Gpio zu schalten.
Zur zeit geht das bei mir über 4 MCP27031 über I2C an einen Wemos D1 und dann per Mqtt an iobroker.
Alternative wäre mir zwar Can Bus am liebsten aber da wir hier ja schon nen Adapter haben probiere ich erstmal I2C.Es gibt schon Python Skripte die über den Raspi einen Arduino steuern.
Ich würde mir ja gerne selber den Adapter anpassen aber ich habe noch keine Berührungen mit adapter programmierung gehabt.Vielleicht habt ihr ja eine Idee.
Schöne Grüße
Enrico -
Hi,
Ich habe mal nen MCP27031 an meinen Nanopi M4V2 angeschlossen.
Hat auch komischerweise alles geklappt. In der Konsole mit i2ctools lauft alles.
Im adapter hat er auch gleich an adresse 0x20 was gefunden. Nach dem Konfigurieren
und speichern geht der Adapter nicht mehr auf grün (garnicht mehr).Im Log steht folgendes:
host.Iobroker 2020-01-02 23:52:09.532 info Restart adapter system.adapter.i2c.0 because enabled host.Iobroker 2020-01-02 23:52:09.532 info instance system.adapter.i2c.0 terminated with code 0 (NO_ERROR) host.Iobroker 2020-01-02 23:52:09.531 error Caught by controller[0]: at objects.getObjectView (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5956:26) host.Iobroker 2020-01-02 23:52:09.531 error Caught by controller[0]: at Adapter.getForeignStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5913:26) host.Iobroker 2020-01-02 23:52:09.531 error Caught by controller[0]: at Adapter._processStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5853:22) host.Iobroker 2020-01-02 23:52:09.531 error Caught by controller[0]: at Adapter._processStatesSecondary (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5787:25) host.Iobroker 2020-01-02 23:52:09.531 error Caught by controller[0]: at StateRedis.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:505:20) host.Iobroker 2020-01-02 23:52:09.531 error Caught by controller[0]: at states.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5817:17) host.Iobroker 2020-01-02 23:52:09.531 error Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.i2c/i2c.js:129:14 host.Iobroker 2020-01-02 23:52:09.531 error Caught by controller[0]: at I2CAdapter.main (/opt/iobroker/node_modules/iobroker.i2c/i2c.js:43:20) host.Iobroker 2020-01-02 23:52:09.530 error Caught by controller[0]: at Object.openSync (/opt/iobroker/node_modules/i2c-bus/i2c-bus.js:47:3) host.Iobroker 2020-01-02 23:52:09.530 error Caught by controller[0]: at checkBusNumber (/opt/iobroker/node_modules/i2c-bus/i2c-bus.js:55:11) host.Iobroker 2020-01-02 23:52:09.530 error Caught by controller[0]: Error: Invalid I2C bus number 2 i2c.0 2020-01-02 23:52:09.015 info (13771) Terminated (NO_ERROR): Without reason i2c.0 2020-01-02 23:52:09.014 info (13771) terminating i2c.0 2020-01-02 23:52:08.964 error at objects.getObjectView (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5956:26) i2c.0 2020-01-02 23:52:08.964 error at Adapter.getForeignStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5913:26) i2c.0 2020-01-02 23:52:08.964 error at Adapter._processStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5853:22) i2c.0 2020-01-02 23:52:08.964 error at Adapter._processStatesSecondary (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5787:25) i2c.0 2020-01-02 23:52:08.964 error at StateRedis.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:505:20) i2c.0 2020-01-02 23:52:08.964 error at states.getStates (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5817:17) i2c.0 2020-01-02 23:52:08.964 error at /opt/iobroker/node_modules/iobroker.i2c/i2c.js:129:14 i2c.0 2020-01-02 23:52:08.964 error at I2CAdapter.main (/opt/iobroker/node_modules/iobroker.i2c/i2c.js:43:20) i2c.0 2020-01-02 23:52:08.964 error at Object.openSync (/opt/iobroker/node_modules/i2c-bus/i2c-bus.js:47:3) i2c.0 2020-01-02 23:52:08.964 error at checkBusNumber (/opt/iobroker/node_modules/i2c-bus/i2c-bus.js:55:11) i2c.0 2020-01-02 23:52:08.964 error (13771) Error: Invalid I2C bus number 2 i2c.0 2020-01-02 23:52:08.963 error (13771) uncaught exception: Invalid I2C bus number 2 i2c.0 2020-01-02 23:52:08.892 info (13771) starting. Version 0.0.6 in /opt/iobroker/node_modules/iobroker.i2c, node: v10.18.0 host.Iobroker 2020-01-02 23:52:07.721 info instance system.adapter.i2c.0 started with pid 13771
der Adapter erstellt auch keine Objekte
hat einer ne idee.
JS Controller ist 2.2.6schöne Grüße
-
Hallo zusammen,
ich bin gerade dabei meine Pool-Steuerung zu planen.
Jetzt bin ich auf das Tentacle T3 Board für den Raspberry Pi gestossen.
Damit könnte ich die PH- und Redox-Werte über I2c auslesen.
Leider bin ich noch nicht so versiert auf dem Gebiet.
Wäre das mit diesem Adapter möglich oder müsste er noch erweitert werden?
Danke schon mal für eure HilfeSchöne Grüße
-
Hi
Ich habe eine RaspiZero und daran einen Servo-Treiber (https://smile.amazon.de/AZDelivery-PCA9685-Servotreiber-Arduino-Raspberry/dp/B072N8G7Y9/ref=pd_sbs_328_1/257-1480378-7596562?_encoding=UTF8&pd_rd_i=B072N8G7Y9&pd_rd_r=fa0715ab-30dc-4c9f-a613-ebb99265e6a0&pd_rd_w=PPyA1&pd_rd_wg=Vbn4i&pf_rd_p=c8718c55-fb13-473f-a41c-592a17ad3468&pf_rd_r=50ZCEETZNTBTFYH6WE43&psc=1&refRID=50ZCEETZNTBTFYH6WE43). Damit möchte ich die Luftklappen meiner Heizung die eben mit Heißluft anstelle von Heißwasser funktioniert steuern. Es wäre super wenn es möglich wäre die Unterstützung für dieses Modul zu implementieren.
LG -
@mike1976 sagte in [Adapter] - iobroker.i2c:
Wäre es denkbar diesen Druckensor mittels i2c einzubinden?
https://docs.rs-online.com/021c/0900766b81568892.pdfHallo Mike, bist du immer noch an diesem Sensor interessiert? Der Sensor ist nicht gerade günstig für mich zum kaufen, aber ich könnte es mal ohne ihn zu kaufen versuchen.
/UncleSam -
@oHa510 sagte in [Adapter] - iobroker.i2c:
@UncleSam Kannst du das entsprechend einprogrammieren? Man könnte z.B. berücksichtigen, ob der Eingang im Adapter als "invertiert" gekennzeichnet ist und dann entsprechend die initial value erzeugen?!
Hallo oHa, habe ein Issue in GitHub erfasst und werde mich möglichst bald darum kümmern:
https://github.com/UncleSamSwiss/ioBroker.i2c/issues/40