Kostengünstige Lösung für viele Inputs (pushbuttons)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    #1

    Kostengünstige Lösung für viele Inputs (pushbuttons)

    Hallo,

    Endlich habe ich eine Kostengünstige Lösung gefunden um ziemlich viele Druckknöpfen verwenden zu können ohne eine Riesenanzahl von Loxone Erweiterungen kaufen zu müssen. Mittlerweile gibt es jetzt auch eine reine Inputmodule von Loxone, aber ist noch ziemlich teuer wenn viele Inputs nötig sind.

    Die Lösung besteht aus einem Raspberry Pi, und dann 16 Optocoupled input module von ERE, welche verbunden sind mit dem Raspberry Pi über I2C.
    Damit habe ich 16 x 8 = 128 Inputs!

    Auf dem Raspberry Pi habe ich nodeJS installiert mit einem Script das die I2C ausliest und dann über UDP weiterleitet an Loxone.

    Raspberry PI mit Gehäuse: +/- 50 euro
    ERE Modulen: +/- 600 euro

    ERE Modulen habe ich hier gekauft:


    Ich habe da 8 normale und 8 mit A gekauft. (Von einem Typ können nur 8 auf eine Bus, die A hat eine andere Busreferenz, somit man dann bis auf 16 gehen kann).

    Die Inputs sind einfach auf 24V verbunden. Ich brauchte die höhere Voltage da wir CAT5 Kabel verwendet hatten (not shielded), und somit auf niedrigen Voltages (wie 5 oder 3.3) würden wir zu viele Falschsignale bekommen.

    Hier einige Bilder und mein node Script:

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: IMG_1180.JPG
Ansichten: 1296
Größe: 61,3 KB
ID: 101212Klicke auf die Grafik für eine vergrößerte Ansicht

Name: IMG_1181.JPG
Ansichten: 876
Größe: 79,2 KB
ID: 101213Klicke auf die Grafik für eine vergrößerte Ansicht

Name: IMG_1183.JPG
Ansichten: 869
Größe: 78,8 KB
ID: 101214
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: IMG_1184.JPG
Ansichten: 831
Größe: 86,7 KB
ID: 101215

    Node Script:

    Code:
    #!/usr/bin/env node
    var PCF8574 = require('pcf8574').PCF8574;
    var i2cBus = require('i2c-bus').openSync(1);
    var Promise = require('bluebird');
    var dgram = require('dgram');
    var client = dgram.createSocket('udp4');
    var LoxPort = '7000';
    var LoxHost = '192.168.1.100';
    var pcfSlaves = i2cBus.scanSync();
    var pcfs = [];
    var pins = [];
    pcfSlaves.forEach(function(pcfSlave) {
        pcfs.push(new PCF8574(i2cBus, pcfSlave, true));
    });
    var callLoxone = function(pcf, pin){
        //console.log('PCF ' + pcf.toString() + ': pushed on button: ' + pin.toString());
        var message = new Buffer('input_' + pcf.toString() + '_' + pin.toString());
        client.send(message, 0, message.length, LoxPort, LoxHost, function(err, bytes) {
            if (err) throw err;
        });
    };
    console.log('Starting...');
    for (var pcf = 0; pcf < pcfs.length; pcf++) {
        pcfs[pcf].enableInterrupt(17);
        !function outer(pcfNr) {
            pcfs[pcf].on('input', function(data){
                if (data.value === false) callLoxone(pcfNr, data.pin);
            });
        }(pcf)
        for (var pin = 0; pin < 8; pin++) {
            pins.push({
                pin: pin,
                pcf: pcfs[pcf]
            });
        }
    }
    Promise.mapSeries(pins, function(pin) {
        return pin.pcf.inputPin(pin.pin, false);
    }).then(function(result){
        console.log('READY');
    });
    process.on('SIGINT', function(){
        client.close();
        for(var pcf=0; pcf<pcfs.length; pcf++) {
    pcfs[pcf].removeAllListeners();
            pcfs[pcf].disableInterrupt();
        }
    });
    In Loxone haben wir einfach einen Virtuellen UDP Eingang eingerichtet auf Port 7000, und dann über UDP Monitor und einlernen mache ich Virtuelle UDP Inputs an.

    Grüsse,

    Reno
  • cRieder
    LoxBus Spammer
    • 26.08.2015
    • 396

    #2
    Schöne Lösung.
    Nur für welche Anwendung benötigt man soviele Iputs ?
    Smarter Gruß,
    Carsten

    Kommentar

    • Gast

      #3
      Leute mit viele Knöpfe...

      Kommentar

      • Robert L.
        MS Profi
        • 26.08.2015
        • 922

        #4
        interessant, kannte ich bisher nur als Bausatz: http://www.horter.de/i2c/i2c-input-m...chreibung.html

        ich hätte es allerdings z.b. mit einem Arduino gelöst
        finde es für "zentrale" Aufgaben etwas kritisch ein fettes Betriebsystem "warten" zu müssen ...

        Kommentar

        • Gast

          #5
          Ich hatte es auch zuerst mit einem Arduino versucht, aber war 'glücklicher' mit dem Raspberry PI, und ich bin auch ein Javascript (nodejs) Entwickler, also war es einfacher mit die Lösung. Und der Raspberry PI hat sofort einen Ethernet Port, wo es bei Arduino noch ein extra Stück drauf ist. Der Raspberry PI bleibt auch viel Kühler als der Arduino.

          Daneben benütze ich dann auch dieser Raspberry PI mit dem Homebridge und Homebridge-loxone-ws für Apple HomeKit.

          Kommentar

          • Labmaster
            Lox Guru
            • 20.01.2017
            • 2590

            #6
            Hmm, das mit der Wärme ist schwer nachvollziehbar da muss was grundsätzlich an der Hardware falsch gewesen sein.
            Ein Arduino mit Netzwerkshield konsumiert um die 0,18W während ein nackter RaspberryPi bei min. 2W liegt.
            Ich für meinen Teil würde auch keine wichtige Funktionen (Licht, Zutritt) über einen Raspberry PI laufen lassen, da reicht mir der Miniserver schon als potentielles Risiko :-)



            Kommentar

            • Michael Sommer
              Lox Guru
              • 25.08.2015
              • 1956

              #7
              Hallo,
              Naja, das Ganze ist eine nette „Spielerei“. Ich selbst halte von solchen funktionalen Trennungen nichts. Zusammengehörige Sensorik und Aktorik sollte man immer in einem gemeinsamen Automationssystem verarbeiten. Damit wird sichergestellt, dass Eingangsbefehle in der Regel sicher funktionieren und z.B. den zugehörigen Ausgang im System ansteuern
              .
              Mit der beschriebenen Auslagerung von digitalen Eingängen habe ich letztendlich zwei Systeme aufgebaut, die ich mittels Netzwerk verbinden muss. Das heißt getrennte Softwareerstellung in beiden Systemen und Aufbau einer geeigneten Datenkommunikation zwischen beiden Systemen. Solche Systemankoppelungen sind nicht immer Zuverlässig. Da kommt es schon mal vor, dass ein Befehl „verschluckt“ wird oder ein Netzwerkgerät "streikt". Schon funktioniert die zugehörige Hausautomation nicht mehr. In Einzelfällen mag das noch Sinn machen. Die Anbindung von nicht vorhandenen Funktionalitäten wie dies durch das Projekt „Loxberry“ umgesetzt wird, ist solch eine Systemerweiterung.

              Meine Meinung: Technisch ist vieles machbar, aber nicht alles was technisch machbar ist, ist auch sinnvoll.
              Gruß Michael
              Haustechnik UG: MS2, 7 Extensionen, WAGO 750er I/O-Module, 19"-Notbedienebene, EMA-Anlage
              ELT-Allgemein UG: MS1, 4 Extensionen Notbedienebene, RM+WM-Anlage, Mehrere Shellys
              Wohnung OG: MS1, 8 Extensionen, Notbedienebene, Mehrere Shellys
              Wohnung EG: konvent. E-Installation, Autarke EZR-Regelkreise (0-10V) für Stat.-HZG mit Aufschaltung (Schwellwert) des Heizkreises auf den Miniserver UG, Zeitsteuerung EG-Wohnung aus Miniserver UG). Mehrere Shellys
              LoxBerry-Nutzer: Stats4Lox,
              Testserver: 2xMS-GEN1

              Kommentar


              • Robert L.
                Robert L. kommentierte
                Kommentar bearbeiten
                Alleine Loxone verkauft(e) selber schon diverse "Systeme": Air, Tree, CAN, DMX , SIP/UDP (türsprechanlage), http (wetterservice)..
                Hausautomatisierung besteht nunmal nicht (mehr) nur aus "licht ein/aus"
                Ein gute Firma zeichnet aus, dass Sie die ganzen Systeme integriert bekommt. und es eben trotzdem stabiel läuft (die meisten sehen hier wohl den miniserver selber als Hauptproblem ;-))

                Diese I2C Geschichte für den Privatanwender, hier ist ja wohl noch die harmloseste und "professionellste" Bastellösung die hier so diskuiert werden. (das als Spielerei abzutun ist eigentlich eine Frechheit)


                wie gesagt, ich würde es nicht mit RaspPi machen (aber das kann ja jeder selber entscheiden)
                ein Arduino + rs485 extension würde sogar die "schwachstelle" Ethernet beseitigen..

              • Gast
                Gast kommentierte
                Kommentar bearbeiten
                rs485 (oder ModBus) hatte ich auch versucht, aber gab ziemliche Probleme auf meinem Loxone Link mit Verzögerungen zur Folge. (Weiss aber nicht genau woher das kam, habe es auch nicht weiter untersucht).

                UDP gab aber noch einen extra Vorteil, und das ist der UDP Monitor mit der Learn Funktion.
                Im Elektrizitätsschrank haben wir einfach alles verbunden, und dann haben wir einfach pro Druckknopf eingelernt.

              • Robert L.
                Robert L. kommentierte
                Kommentar bearbeiten
                modbus wurde von Loxone nachträglich kastriert http://www.loxwiki.eu/pages/viewpage...ageId=13304619

                rs485 bin ich davon ausgegangen dass es problemlos funktionieren sollte (zumindest gibt es hier im Forum auch i/o module auf rs232 basis die funktionieren)
            • Robert L.
              MS Profi
              • 26.08.2015
              • 922

              #8
              Zitat von RenoMechant

              Daneben benütze ich dann auch dieser Raspberry PI mit dem Homebridge und Homebridge-loxone-ws für Apple HomeKit.

              genau das wollte ich noch schreiben:
              ich hätte auch bedenken, weil man ist dann verleitet immer noch mehre Features auf Raspberry PI zu packen ..


              den Arduino Programmiert man einmal und er läuft die nächsten 10 Jahre durch

              ein w5100 alleine sollte allerdings 150mA (0,75Watt) brauchen...
              chip selber wird auch Warm, aber nicht heiß,...
              Arduino + Ethernet Shield braucht also auch 2Watt,
              u.U: sind neuere Ethernet Shield 2 "sparsamer?"

              Kommentar


              • Gast
                Gast kommentierte
                Kommentar bearbeiten
                Für mich persönlich machte der Raspi mehr Sinn da ich Berufsmäßig täglich mit Debian Systeme arbeite (und Raspbian ist eigentlich Debian) also ich kenne das OS ziemlich gut.
                Zweiter Vorteil ist dass das ganze OS auf einer SD Karte steht, und von dem habe ich immer eine Kopie mit das Original.
                Dritter Vorteil ist dass ich über Ethernet via SSH zugreifen kann auf dem System um eventuelle Änderungen durch zu führen.

                Das heisst aber nicht dass ich nie Arduino benütze, aber eher nur wenn es nur um wirklich eine Funktionalität geht.
                In diesem Fall gab es zwei, I2C auslesen, und Loxone über UDP eine Nachricht senden.
                Und die zweite Funktionalität muss unabhängig gehen vom ersten (die UDP Versendung könnte zB unter Umständen Verzögerung haben).

                Aber wie alles hat hier auch viel mit Geschmacksache zu tun.

                Bei meinem Arduino war es tatsächlich das Ethernet Shield das nicht Warm, sondern Heiss lief.
            • Michael Sommer
              Lox Guru
              • 25.08.2015
              • 1956

              #9
              Robert L.
              Natürlich braucht eine Hausautomation Schnittstellen um mit anderen Systemen sinnvoll zu arbeiten. Ob jede umgesetzte Anbindung Sinnvoll oder Notwendig ist, muss jeder für sich entscheiden. Wichtig ist das ein Nutzen für den Betreiber herauskommt. Auch Air bzw. Tree sehe ich kritisch, macht aber für viele Anwender es einfacher umzusetzen. Zumindest hat man trotzdem ein Gesamtsystem entwickelt, das über eine gemeinsame Software bzw. Bedienoberfläche nutzbar ist. Aber das ist hier nicht das Thema.

              Glaube mir, ich weiß dass eine Automation nicht nur aus Ein/Aus-Funktionen besteht. Da gehört einfach mehr dazu. Letztendlich ist eine Hausautomation ja nur die „abgespeckte Form“ einer Gebäudeautomation.

              Übrigens jeder soll seine Anlage so aufbauen wie er es für richtig hält. Wichtig ist dabei, dass bei einem Problem sicher und zielgerichtet Abhilfe schaffen kann. Mit einem Gesamtsystem ist das sicherlich einfacher. Für mich ist die Trennung solcher zusammengehörenden E/A-Funktionen Unnötig und nicht Sinnvoll. Für mich ist das aber keine zukunftssichere einer Hausautomation. Spätestens wenn man Fremdunterstützung, wenn der Ersteller nicht (mehr) greifbar, fällt man damit auf die „Nase“ mit solchen Lösungen. Dabei bleibe ich.

              PS: Ich sehe meine „Spielerei“-Wortwahl nicht als Frechheit, sondern als Hinweis.

              Gruß Michael (der zu diesem Thema keine weiteren Aktivitäten mehr beisteuert)


              Haustechnik UG: MS2, 7 Extensionen, WAGO 750er I/O-Module, 19"-Notbedienebene, EMA-Anlage
              ELT-Allgemein UG: MS1, 4 Extensionen Notbedienebene, RM+WM-Anlage, Mehrere Shellys
              Wohnung OG: MS1, 8 Extensionen, Notbedienebene, Mehrere Shellys
              Wohnung EG: konvent. E-Installation, Autarke EZR-Regelkreise (0-10V) für Stat.-HZG mit Aufschaltung (Schwellwert) des Heizkreises auf den Miniserver UG, Zeitsteuerung EG-Wohnung aus Miniserver UG). Mehrere Shellys
              LoxBerry-Nutzer: Stats4Lox,
              Testserver: 2xMS-GEN1

              Kommentar

              • Gast

                #10
                Gelöscht
                Zuletzt geändert von Automation; 29.08.2017, 06:47. Grund: Bitte Forenregel beachten. keine Eigenwerbung.

                Kommentar


                • Gast
                  Gast kommentierte
                  Kommentar bearbeiten
                  Schade dass ich diese Modulen nicht früher gefunden habe. Noch billiger als diejenige die ich gekauft habe.

                  MfG
                  Reno
              • Gast

                #11
                Zitat von t.gersmann
                Gelöscht
                warum gelöscht?

                Gesendet von meinem SM-G930F mit Tapatalk

                Kommentar


                • Gast
                  Gast kommentierte
                  Kommentar bearbeiten
                  Ich habe es nicht gelöscht.

                  VG
                  Reno

                • Automation
                  Automation kommentierte
                  Kommentar bearbeiten
                  Bitte lese unsere Forenregeln durch. Der Grund habe ich angegeben, siehe im Post.
                  Aber als Service, was da steht:
                  Werbung
                  Inhalte mit Werbecharakter sind nicht erlaubt. Dies beinhaltet auch Links in der Signatur zu Unternehmen oder Webshops. Ebenso ist das Bewerben in Threads der eigenen Firma nicht gestattet. Das Konzept für Werbung ist in Arbeit. Bei Interesse, kannst du dich per E-Mail melden.
              Lädt...