Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.


Seiteneigenschaften


Autor
Logo

Status

Status
colourRed
iconfalse
titleIn Entwicklung

Version0.0.12
Kompatibilität

Status
colourRed
iconfalse
titleLB 0.2.3
Status
colourGreen
iconfalse
titleLB 1.2.4

Download
Zweck Dieses Modul stellt die digitalen Ein- und Ausgänge des Raspberry zur Verfügung



Erweitern
titleVersion History...

Version 0.0.1

  • erste Test Version

Version 0.X0.2

  • Umbenennung von IO nach GPIO
  • Konfiguration geht nun nach einem Update nicht mehr verloren


Warnung
titleHinweis

Dieses Plugin ist aktuell noch in der Entwicklung. Es sollte nur von versierten Anwendern eingesetzt werden, die bereit sind, mich bei der Entwicklung durch testen des Plugins zu unterstützen.

Ein produktiver Einsatz dieses Plugins wird aktuell NICHT empfohlen

Inhalt

Inhalt
minLevel2



Download

https://github.com/joesie/io

Installation

Bei der Installation wird die Bibliothek "pigpio" automatisch geladen. Hierfür muss der Loxberry Zugang zum Internet haben. Ohne diese Bibliothek kann das Plugin nicht betrieben werden.

nach der Installation ist ein Neustart erforderlichN

Konfigurationsoptionen

Über die Konfigurationsoberfläche können folgende Einstellungen vorgenommen werden:

  • Anzahl der Eingänge
  • Anzahl der Ausgänge
  • Zuweisung der GPIO Pins zu den Kanälen die über die LoxConfig aufgerufen werden können.

Funktion des Plugins

Konfiguration

Anzahl Ein/Ausgänge

Als erstes werde die Anzahl der benötigten Ein- und Ausgänge angegeben. Dabei können die Anzahl der Ein- und Ausgänge gemischt oder auch nur Ein- oder nur Ausgänge gewählt werden. siehe folgende Abbildung:

Die Auswahl muss gespeichert werden. Nach dem speichern wird der untere Bereich, die Kanalkonfiguration angepasst. 

Kanalkonfiguration

In der Kanalkonfiguration wird die Zuordnung der physischen Ein- und Ausgänge zu den Kanälen des Plugins vorgenommen. Diese Trennung der physischen Pins (GPIOs) zu den verwendeten Ein- und Ausgängen (Kanälen) dient dazu in der LoxConfig z.B. die Kanäle 0-2 zu verwenden, während im Plugin die GPIOS 15, 19 und 26 verwendet werden. Die Zuordnung kann zu jeder Zeit einfach im Plugin neu vergeben werden ohne die Programmierung im Miniserver anzupassen.

Die Zuweisung erfolgt durch Eingabe der entsprechenden GPIO Nummer. Hierbei ist darauf zu achten, dass jedem GPIO nur ein Kanal zugewiesen wird. Außerdem darf ein GPIO nur ein Ein-oder Ausgang sein. Die Verwendung sowohl als Ausgang wie Eingang ist nicht möglich!

Die Pinbelegung des PIs kann z.B.hier nachgelesen werden.

In der folgenden Abbildung ist eine Beispielkonfiguration abgebildet:

Nach dem speichern wird die Kanalzuweisung übernommen und die gewählten GPIOs entsprechend als Ein oder Ausgänge verwendet.

Funktion des Plugin

Schalten der Ausgänge

Geschaltet werden die Ausgänge über URL Parameter. Dabei ist es möglich sowohl einen, wie auch mehrere Ausgänge auf einmal zu schalten. Die Parameter sind dabei wie folgt aufgebaut: 

Die Parameter der Ausgänge sind mit "o" gefolgt von der Kanalnummer aufgebaut. Z.B. "o1" für Ausgang 1. Der Wert wird mit "on" für einschalten oder "off" für ausschalten angegeben.

Beispiel:

Der Ausgang 1 soll eingeschaltet werden, dann sieht der Parameter folgendermaßen aus: "o1=on".

Eine URL für die Ausgänge 0-3 kann somit folgendermaßen aussehen:

Adresse des Loxberry/plugins/io/?o0=off&o1=on&o2=on&o3=on



Einrichtung in der Loxone Config Software

Vorlagedatei für 8Relais:

In folgendes Verzeichnis legen und Config neu starten  C:\ProgramData\Loxone\Loxone Config 10.0\Templates\VirtualOut

View file
nameVO_Digitale Ausgänge Loxberry.xml
height250

IP anpassen nicht vergessen


Verwendung der Eingänge

Alle eingestellten Eingänge werden alle 100ms abgefragt. Damit die am Eingang anliegenden Signale sicher gelesen werden, müssen diese mindestens 200ms lan anliegen. Bei kürzeren Signalen kann es passieren, dass der geänderte Wert nicht erkannt wird.

Gibt es eine Änderung des Wertes eines Eingangs, so wird dieser per http als Push Nachricht an den ersten konfigurierten Miniserver geschickt.

Eingänge wie im Plugin nach der Reihe nach anlegen z.B. I0 bis I7

Mit einem Webbefehl könnt ihr das ganze testen: http://user:password@IP Miniserver/dev/sps/io/I0/Ein oder ebenhttp://user:password@IP Miniserver/dev/sps/io/I0/Aus

Rückmeldung sollte in etwa so ausschauen und die LiveView wird darauf reagieren


Allgemeines zu den GPIO Eingängen:

Von den insgesamt 26 oder 40 Pins (je nach Modelle) der GPIO-Anschlussleiste 17 oder 26 Pins wahlweise als Eingang oder Ausgang programmieren und so für vielfältige Erweiterungen und elektronische und digitale Schaltungen nutzen. Die übrigen Pins sind für die Stromversorgung und andere Zwecke festgelegt.

3,3 Volt über die Pins 1 und 17

An Pins 1 und 17 liegen ungefähr 3,3 Volt an. Da bietet es sich natürlich an externe Elektronik darüber mit Strom zu versorgen. Das Problem dabei ist, dass das nur begrenzt möglich ist, weil über die Stromentnahme die Spannung sinkt und somit nicht mehr zwangsläufig 3,3 Volt anliegen.
Der sichere und für das Gesamtsystem stabilere Weg ist, externe Schaltungen über eine externe Spannungsquelle zu betreiben. Alles andere kann funktionieren, muss aber nicht.

5 Volt über die Pins 2 und 4

An Pins 2 und 4 liegen ungefähr 5 Volt an. Da bietet es sich natürlich an externe Elektronik darüber mit Strom zu versorgen. Das Problem dabei ist, dass das nur begrenzt möglich ist, weil über die Stromentnahme die Spannung sinkt und somit nicht mehr zwangsläufig 5 Volt anliegen.
Der sichere und für das Gesamtsystem stabilere Weg ist, externe Schaltungen über eine externe Spannungsquelle zu betreiben. Alles andere kann funktionieren, muss aber nicht.

Weitere Informationen
  • Einige GPIO-Pins sind direkt mit dem Prozessor verbunden. Ein Kurzschluss kann diesen und damit den Raspberry Pi komplett zerstören. GPIO-Pins sind in jedem Fall mit einer Strombegrenzung zu beschalten.
  • An den Power-Pins für +5V und +3,3V liegt auch dann eine Spannung an, wenn der Raspberry Pi ausgeschaltet bzw. heruntergefahren ist.
  • GPIO 2 und GPIO 3 (Pins 3 und 5) haben je einen internen 1,8 kOhm Pullup-Widerstand verbaut. Bei den anderen GPIOs haben die internen, schaltbaren Widerstände einen Wert von 50 bis 60 kOhm.
  • Alles unter 0,8V ist low, alles über 1,3V ist high, Bemerkung: alles über 3,3V ist tödlich für den Raspberry Pi!


Relaiskarte: https://www.amazon.de/dp/B01BAFLMCI/ref=sspa_dk_detail_1?psc=1&pd_rd_i=B01BAFLMCI&pf_rd_m=A3JWKAKR8XB7XF&pf_rd_p=00903874-3af0-47e0-8622-ee58087f71cf&pf_rd_r=NQQP58QH4M0S47N5HFC8&pd_rd_wg=vEeuN&pf_rd_s=desktop-dp-sims&pf_rd_t=40701&pd_rd_w=5HmxM&pf_rd_i=desktop-dp-sims&pd_rd_r=43118900-ca5a-11e8-ad7e-013f963e194b



Daraus würden sich folgende Belegungen anbieten:

Eingang 0            GPIO17 Pin11                                                   Ausgang 0           GPIO18 Pin12

Eingang 1            GPIO22 Pin13                                                   Ausgang 1           GPIO23 Pin16

Eingang 2            GPIO27 Pin15                                                   Ausgang 2           GPIO24 Pin18

Eingang 3            GPIO 5 Pin29                                                    Ausgang 3           GPIO25 Pin22

Eingang 4            GPIO 6 Pin31                                                    Ausgang 4           GPIO12 Pin32   

Eingang 5            GPIO 13 Pin33                                                  Ausgang 5           GPIO16 Pin36

Eingang 6            GPIO 19 Pin35                                                  Ausgang 6           GPIO20 Pin38   

Eingang 7            GPIO 26 Pin37                                                  Ausgang 7           GPIO21 Pin40  


Achtung die GPIO Eingänge vertragen max. 3,3V darum Eingänge links und die Relais rechts damit nichts passiert!




Roadmap

  • Ein- und Ausgänge als Option invertieren
  • In der Konfiguration soll der Miniserver ausgewählt werden können, an den die Änderungen des Eingangs gesendet werden
  • Das Abtastintervall der Eingänge soll einstellbar sein
  • Die Konfigurationsdatei soll bei einem Update nicht mehr überschrieben werden
  • Die Eingänge mit einen Präfix versehen
  • Das Modul muss einen Namen bekommen, der mindestens 4 Zeichen lang ist
  • Konfigurierbar machen der Pullup/Down Widerstände:
    • PUD g p - Set GPIO pull up/down

                 This command sets the internal pull/up down for GPIO g to mode p.

                 Upon success nothing is returned.  On error a negative status code will be returned.

                 The mode may be pull-down (D), pull-up (U), or off (O).

                 Example

                 $ pigs pud 4 d # Set pull-down on GPIO 4.

                 $ pigs pud 4 u # Set pull-up on GPIO 4.

                 $ pigs pud 4 o # No pull-up/down on GPIO 4.


Fragen stellen und Fehler melden

Fehler bitte im Github als Issue einstellen. Fragen können hier im Kommentar gestellt werden.