Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. moskito_91

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    M
    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 18
    • Best 2
    • Groups 1

    moskito_91

    @moskito_91

    Starter

    2
    Reputation
    20
    Profile views
    18
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    moskito_91 Follow
    Starter

    Best posts made by moskito_91

    • CAN-Bus IO mit IOBroker

      Hallo Zusammen,
      ich möchte euch hier mein kleines Hausautomatisierungsprojekt vorstellen. Ziel war es alles von einer Zentrale aus zu steuern (Schaltschrank).
      Das ganze wird mit Stromstoßschalter realisiert, die 2 Schließer besitzen. Einer schaltet den Kontakt, der andere 24V auf den Eingang der IO Gruppe zur Statusermittelung.

      Das ganze soll, auf 24V Basis laufen. Die Taster schalten direkt 24V auf ein Stromstossrelais, oder bei einer Funktion die 24V auf die IO-Baugruppe. Die CAN-IO hat ihre Ausgänge parallel auf den SSR.

      PCB:
      Die PCBs habe ich selber entwickelt und bestückt. Diese laufen mit einer Eingangsspannung von 12-30V. Die Baugruppe besitzt folgende IOs:

      1. 16x DO
      2. 16x DI
      3. 4xPWM/Analog (Umschaltbar) 12Bit
      4. Eingang 12Bit (Spannungsteiler änderbar)
      5. Uart
      6. Can-Bus
      7. 3 über Jumper einstellbare Adressierpins

      Maße: 160mmx100mm Europlatine
      CANIO5.jpg
      Software

      Die komplette CAN-IO wird mittels Canbus gesteuert. Das ganze läuft dann wie folgt:

      CAN_IO.PNG

      Die einzelnen Baugruppe sind kaskadierbar.

      Auf den Baugruppen läuft quasi dann nur ein embedded Code, der Objekte enthält, die mittels Can-Bus beschreibbar / lesbar sind.

      Die eigentliche Logik/Steuerung läuft auf dem IObroker , bzw. hauptsächlich NODE-RED. Zur Generierung der Objekte, wurde eine MYSQL Datenbank erstellt. In ihr sind alle wichtigen Informationen enthalten:

      CANIO2.PNG

      Jede CANIO hat ihren eigenen Identifier (Auch wenn das für Can eher unüblich ist). Damit lässt sich eine eindeutige Adresse festlegen.
      Die Eingangs/Ausgangsregister sind Bit-codiert. Bedeutet ein Eingangs/Ausgangsobjekt besitzt 16bit. Für die Eingangs-/Ausgangsobjekt wurde zur Generierung weiterer Objekte eine einzelne Tabelle erstellt.

      Das Basisgerüst konnte ich gestern fertigstellen, sodass eigentlich alle Eingänge und Ausgänge laufen.

      CANIO4.PNG CANIO3.PNG

      Die CAN-IO sendet bei Veränderung eines Digitaleingangs das Eingangsobjekt automatisch. Die Ausgangsobjekte können nach belieben mit einer Logik beschrieben werden.

      Für mich war IOBroker als Gateway eine sehr gute Auswahl. Es ist möglich diverse Hardware an diese echt coole Platforum anzuknüpfen. Ausserdem ist der Support grandios.
      Für mich war eine klare Trennung zwischen Hard- und Software wichtig. Deswegen habe ich mich für eine CAN-Bus Lösung entschieden. Damit ist es egal, welchen "Kopf" man über die CANIO setzt. Weiter war es für mich wichtig, dass ich ein System habe, welches in Zukunft einfach wartbar und erweiterbar ist. Meinen kompletten Schaltschrank habe ich vorverdrahtet, und zu allem Schaltpläne gezeichnet. Falls mir was passiert, ist es möglich alles nachzuvollziehen. Eine komplette Dokumentation sowie Workflows zum einrichten von Ein-und Ausgängen ist natürlich auch beschrieben.

      Das war es erstmal, ich habe natürlich nicht alle Informationen in den einen Thread gepackt, das wäre mehr als viel . Ich wollte einfach mal ein wenig Kontakt mit gleichgesinnten haben, und eventuell konstruktive Kritik.

      Danke und Gruss
      moskito

      posted in Entwicklung
      M
      moskito_91
    • RE: jarvis v3.0.0 - just another remarkable vis

      Hallo Zusammen,
      danke für den Klasse Adapter Zefau!
      Habe mir direkt nach Installation von 2.2 auf 3 (unglaublicher Sprung und Fortschritt) die Pro Version gekauft, um dich auch zu Unterstützen und meinen Dank auszusprechen.
      Ich hätte aber noch eine Frage zu den Charts.
      In der Pro Version hat man die Chance die x und y Achsenattribute zu verändern. (Beispielsweise min und max Werte der Achsen).

      Wie ist das mit der Achsenbeschriftung? Ich finde die passende Syntax nicht dafür, bzw. es ändert sich einfach nichts. Ich habe mir schon diverse Beispiele auf https://echarts.apache.org/en/option.html#grid angeschaut.

      Danke und Gruß

      posted in Tester
      M
      moskito_91

    Latest posts made by moskito_91

    • RE: Yet another HomeKit adapter

      Hallo Zusammen,
      ich habe ein kleines Problem mit Siri und Yahka.
      Ich benutze zum Schalten meiner Rollladen ganz normale Relais die über eine an IObroker gekoppelte Schaltung angeschlossen sind.
      Wenn ich jetzt einen Schalter in Yakah definiere, und diesen mittels Sprachbefehl : "Hey Siri, Schalte Rolladen Arbeitszimmer hoch", erkennt Siri diesen Sprachbefehl nicht. Soweit ich verstanden habe, kann ich den Schalter für die Jalousie nicht als "Windowcover" definieren, da diese auch eine Position benötigt.

      Wie stelle ich das jetzt am besten an, mittels Sprachbefehl (SIRI) die Rolladen zu steuern?
      Eine Lampe kann ich bereits ohne Probleme steuern.

      Danke und Gruß
      Marcus

      posted in ioBroker Allgemein
      M
      moskito_91
    • RE: jarvis v3.0.0 - just another remarkable vis

      Hallo Zusammen,
      danke für den Klasse Adapter Zefau!
      Habe mir direkt nach Installation von 2.2 auf 3 (unglaublicher Sprung und Fortschritt) die Pro Version gekauft, um dich auch zu Unterstützen und meinen Dank auszusprechen.
      Ich hätte aber noch eine Frage zu den Charts.
      In der Pro Version hat man die Chance die x und y Achsenattribute zu verändern. (Beispielsweise min und max Werte der Achsen).

      Wie ist das mit der Achsenbeschriftung? Ich finde die passende Syntax nicht dafür, bzw. es ändert sich einfach nichts. Ich habe mir schon diverse Beispiele auf https://echarts.apache.org/en/option.html#grid angeschaut.

      Danke und Gruß

      posted in Tester
      M
      moskito_91
    • RE: jarvis v2.2.0 - just another remarkable vis

      Hallo,
      ich habe ein Problem mit den Iframes nach update.
      Grafana-Graphen habe bis vor dem Update ohne Probleme funktioniert.
      Kann mir jemand helfen?

      Der Link sieht folgendermaßen aus:
      http://192.168.0.10:3000/d/-GuWK9xMz/pv_anlage?orgId=1&from=now-12h&to=now&kiosk

      1.jpg

      2.jpg

      Das Fenster wird abgeschnitten. Ich habe schon probiert einige Einstellungen zu ändern, hat aber keinen Erfolg gebracht.
      Ist mit jedem Browser und Gerät gleich. (Chrome, Iex, Safari, Iphone, Ipad etc.)

      Danke und Gruß

      posted in Tester
      M
      moskito_91
    • RE: Timerstop Javascript/Blockly bei Funktionsaufruf

      @asgothian
      Hallo,
      danke für deine Antwort.
      Was ich machen möchte:
      Jeder Bewegungsmelder hat einen eigenen Timer. Dieser Timer wird bei Ausschalten des Bewegungsmelders gestartet.
      Wenn der Bewegungsmelder nochmal getriggert wird, wird der Timer resettet.

      Die Ausgänge sollen logischerweise das erste mal bei einem Signaleingang auf dem Bewegungsmelder auf 1 gesetzt werden. Hinter dem IObroker habe ich eine Eigenentwicklung hängen , die die Stromstoßrelais dort hinter schaltet.

      Ich möchte, dass der jeweilige Timer bei Funktionsaufruf resettet wird.
      Das Tor und der Eingang haben jeweils einen eigenen Bewegungsmelder. Beide Bewegungsmelder schalten aber die selben Ausgänge.

      Danke und Gruß
      MJ

      posted in Skripten / Logik
      M
      moskito_91
    • RE: Timerstop Javascript/Blockly bei Funktionsaufruf

      @asgothian
      Hallo,
      könntest du am WE mal über den Code schauen?
      Gruß MJ

      posted in Skripten / Logik
      M
      moskito_91
    • RE: CAN-Bus IO mit IOBroker

      @atlantis BTW, es ist kein Raspi! Habe ein kleines NAS mit OMV gebaut.
      Da läuft auch der Broker drauf.
      Gruß

      posted in Entwicklung
      M
      moskito_91
    • RE: Timerstop Javascript/Blockly bei Funktionsaufruf

      @asgothian
      Hallo!
      Ich bräuchte bitte nochmal Hilfe.
      Es geht um folgenden Code:

      var Ausgang_SSR, Status_SSR, SSR1_Timeout, SSR1_Timeout2, Timer_Index, Timerlaenge_BM, Status_BM;
      /**
      var Timer_Aussen_Eingang={val:0}
      var Timer_Aussen_Garage_Tor={val:0}
      
      function Bewegungsmelder_Aussen_2(Status_BM,Ausgang_SSR, Status_SSR, Timer_Index,Timerlaenge_BM) {
       if (compareTime(getAstroDate("sunriseEnd", undefined, 0), getAstroDate("sunsetStart", undefined, 0), "not between", null)) { 
        if (getState(Status_SSR).val != true) {
          setState(Ausgang_SSR,'1');
          SSR1_Timeout = setTimeout(function () {
            setStateDelayed(Ausgang_SSR, '0', false, parseInt(0, 10), false);
          }, 300);
        }
        (function () {if (Timer_Index) {clearTimeout(Timer_Index); Timer_Index = null;}})();
        if(getState(Status_BM).val != true) {   
        Timer_Index = setTimeout(function () {
            if(getState(Status_SSR).val==true){
          setState(Ausgang_SSR,'1');
          SSR1_Timeout2 = setTimeout(function () {
            setStateDelayed(Ausgang_SSR, '0', false, parseInt(0, 10), false);
          }, 300); }
        }, Timerlaenge_BM);
        }
          }
      }
      
      on({id: 'node-red.0.DI.BM_Aussen_Eingang', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        Timer_Aussen_Eingang.val=Bewegungsmelder_Aussen_2('node-red.0.DI.BM_Aussen_Eingang','node-red.0.DO.Aussen_Eingang','node-red.0.DI.Aussen_Eingang',Timer_Aussen_Eingang.val, 30000);
        Timer_Aussen_Garage_Tor.val=Bewegungsmelder_Aussen_2('node-red.0.DI.BM_Aussen_Eingang','node-red.0.DO.Aussen_Garage_Tor','node-red.0.DI.Aussen_Garage_Tor',Timer_Aussen_Garage_Tor.val, 30000);
      });
      
      on({id: 'node-red.0.DI.BM_Aussen_Garage_Tor', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        Timer_Aussen_Eingang.val=Bewegungsmelder_Aussen_2('node-red.0.DI.BM_Aussen_Garage_Tor','node-red.0.DO.Aussen_Eingang','node-red.0.DI.Aussen_Eingang',Timer_Aussen_Eingang.val, 30000);
        Timer_Aussen_Garage_Tor.val=Bewegungsmelder_Aussen_2('node-red.0.DI.BM_Aussen_Garage_Tor','node-red.0.DO.Aussen_Garage_Tor','node-red.0.DI.Aussen_Garage_Tor',Timer_Aussen_Garage_Tor.val, 30000);
      });
      

      In meinem ersten Funktionsprototypen hatte ich nur die Werte einer Variablen übergeben.
      Anschließend habe ich das Gefühl gehabt, dass jedes mal wenn die Funktion aufgerufen wird (auch von anderen Triggern), die Variable die im ersten Aufruf übergeben wurde, sprich der Timer resettet oder verändert wurde.

      Anschließend bin ich auf Cal-by-Value und Call-by-Reference gestoßen.
      Manchmal bleibt bei mir leider ein Stromstoßrelais angezogen. Ich kann das Script nicht gut genug debuggen und kriege den besagten Status auch nicht selber provoziert. Er stellt sich irgendwann ein.

      Bei der Embedded Programmierung kann ich den Scedular direkt beeinflußen, hier ist das leider ein wenig schwerer. Außerdem fehlt mir KnowHow um an die richtige stelle zu schauen.

      Bitte um Hilfe!

      posted in Skripten / Logik
      M
      moskito_91
    • RE: CAN-Bus IO mit IOBroker

      @atlantis Hallo mein Lieber. Ich benutze den FISCHL USB-TIN. Habe mir einen Bausatz auf Amazon geholt. Funktioniert tadellos.
      Den kannst du einfach im Linux mit SL-CAN einbinden und die Schnittstelle dann mit der Socketcan Node in Node red nutzen.

      Gruß MJ

      posted in Entwicklung
      M
      moskito_91
    • RE: Javascript Expression Logic Hilfe

      @paul53
      Das stimmt,
      dankeschön.
      Man lernt eben nur richtig wenn man ausprobiert und selber dahinter kommt.

      Vielen dank für die schnelle Hilfe!

      posted in Skripten / Logik
      M
      moskito_91
    • RE: Javascript Expression Logic Hilfe

      @paul53
      Hallo Paul,
      danke für deine Hilfe. Das ganze sieht demnach so aus:

      var State_Variable;
      const StateArray = [
          "Jarvis.Jalousie_Trigger.JaKid1Ru",
          "Jarvis.Jalousie_Trigger.JaKid1Ho"];
          console.log(StateArray.length);
      //*for(var i=0; i<StateArray.length+1;i++){
      //    createState(StateArray[i],false,{name:"Trigger_JaKid1Ru",type:"boolean",role :"state"});
      //}
      
      function State_Reset(dp) {
          setStateDelayed(dp.id, false, 300);
          console.log('trigger');
      }
       
      on({id: StateArray, change: 'gt'}, State_Reset); // triggert bei Wertänderung auf größer
      
      

      Trotzdem gibt er mir die Debug Ausgabe trigger nicht, demnach funktioniert dieser nicht? Kannst du mir noch einen Tip geben?

      posted in Skripten / Logik
      M
      moskito_91
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo