Navigation

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

    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

    D
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 4
    • Best 0
    • Groups 1

    Det-le

    @Det-le

    Starter

    0
    Reputation
    5
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Det-le Follow
    Starter

    Latest posts made by Det-le

    • RE: Skript (Zisternenfüllstandsanzeige) funzt nicht..

      So,

      sorry, hat etwas gedauert. Hier nun ein funktionierendes Script für den IO-Broker. Habe es bei mir im Einsatz und es tut was es soll. Man kann es bestimmt noch optimieren, ich kann so aber jeden Schritt nachvollziehen und auch verstehen. Daher ist das für mich Laien sehr gut geeignet.

      00fc977c-51e3-45b0-88be-686c00327a6e-image.png

      var Fuellstand;
      
      
      on({ id: [].concat(['hm-rpc.2.001460C9ABA6A1.5.STATE']).concat(['hm-rpc.2.001460C9ABA6A1.6.STATE']).concat(['hm-rpc.2.001460C9ABA6A1.7.STATE']).concat(['hm-rpc.2.001460C9ABA6A1.8.STATE']), change: 'ne' }, async (obj) => {
        setState('0_userdata.0.Zisterne.A' /* A */, getState('hm-rpc.2.001460C9ABA6A1.5.STATE').val, true);
        setState('0_userdata.0.Zisterne.B' /* B */, getState('hm-rpc.2.001460C9ABA6A1.6.STATE').val, true);
        setState('0_userdata.0.Zisterne.C' /* C */, getState('hm-rpc.2.001460C9ABA6A1.7.STATE').val, true);
        setState('0_userdata.0.Zisterne.D' /* D */, getState('hm-rpc.2.001460C9ABA6A1.8.STATE').val, true);
        Fuellstand = 0;
        Fuellstand = (typeof Fuellstand === 'number' ? Fuellstand : 0) + (getState('hm-rpc.2.001460C9ABA6A1.8.STATE').val ? 0 : 10);
        Fuellstand = (typeof Fuellstand === 'number' ? Fuellstand : 0) + (getState('hm-rpc.2.001460C9ABA6A1.7.STATE').val ? 0 : 20);
        Fuellstand = (typeof Fuellstand === 'number' ? Fuellstand : 0) + (getState('hm-rpc.2.001460C9ABA6A1.6.STATE').val ? 0 : 40);
        Fuellstand = (typeof Fuellstand === 'number' ? Fuellstand : 0) + (getState('hm-rpc.2.001460C9ABA6A1.5.STATE').val ? 0 : 80);
        setState('0_userdata.0.Zisterne.Fuellstand' /* Fuellstand */, Fuellstand);
        setState('0_userdata.0.Zisterne.Ueberlauf' /* Ueberlauf */, false);
        setState('0_userdata.0.Zisterne.Kein_Pegel' /* Kein Pegel */, false);
        setState('0_userdata.0.Zisterne.Fehler' /* Fehler */, false);
        setState('0_userdata.0.Zisterne.Aus' /* Aus */, false);
        if (Fuellstand == 110) {
          setState('0_userdata.0.Zisterne.Ueberlauf' /* Ueberlauf */, true);
        }
        if (Fuellstand == 130) {
          setState('0_userdata.0.Zisterne.Kein_Pegel' /* Kein Pegel */, true);
        }
        if (Fuellstand == 140) {
          setState('0_userdata.0.Zisterne.Fehler' /* Fehler */, true);
        }
        if (Fuellstand == 150) {
          setState('0_userdata.0.Zisterne.Aus' /* Aus */, true);
        }
      });
      
      
      Das Script für die CCU3 habe ich noch nichts ans laufen gebracht. Da muss ich bei Gelegenheit noch mal ran.
      
      posted in Skripten / Logik
      D
      Det-le
    • RE: Skript (Zisternenfüllstandsanzeige) funzt nicht..

      OK, vielen Dank. Ich komme erst am Dienstag dazu mir das genauer anzuschauen. Ich werde berichten...

      posted in Skripten / Logik
      D
      Det-le
    • RE: Skript (Zisternenfüllstandsanzeige) funzt nicht..

      @geschild Vielen Dank für die Unterstützung, jetzt steh ich echt aufm Schlauch....
      Ich habe dein Blockly genommen und im ioBroker als Blockly importiert. Unter Objekt A-D habe ich die ID vom Funkmodul der Kanäle 5-8 hinterlegt:
      eade75a6-66a0-45ab-8e62-cf630b07815d-image.png

      Weiter unten habe ich wieder die ID's der Kanäle 5-8 hinterlegt.
      9e1d0c5e-903a-4c9d-bfe1-e206e6ce7f73-image.png strikethrough text

      Aber, unter Userdata 0 finde ich keine Datenpunkte A-D oder andere Datenpunkte die mir den Füllstand oder die anderen Daten anzeigen. Hab grad keinen Plan wo ich die Daten finden/sehen kann.

      Skript in der CCU klappt auch nicht, alle Variablen bleiben auf 0, bzw. false. Prio hat für mich aber die Lösung im ioBroker..

      Det

      posted in Skripten / Logik
      D
      Det-le
    • Skript (Zisternenfüllstandsanzeige) funzt nicht..

      Hallo zusammen,
      ich bin recht unerfahren mit Skripten und Blockly. Habe zwar schon ein paar Blocklys zusammengebaut, komme aber mit dem derzeitigen Problem nicht weiter (Suche hat auch nicht ergeben).
      Ich habe mir eine Zisternenfüllstandsanzeige gekauft (Zisternensteuerung.de) mit einer Auswertung auf ein Hutschienenmodul, von dort per Funk weiter an die CCU3. Auswertung im Hutschienenmodul funktioniert, Funkmodul in der CCU3 angelernt, zeigt auch die Füllstände im Gerätestatus an den Kanälen 5-8 richtig an (als Einzelbit). Nur das Skript zur Berechnung des Pegels in % aus den Einzelbits mit ihren Dezimalwerten und der Summation funktioniert nicht.
      af9b4f2d-3752-4a8f-8884-3880a7c15d43-image.png
      bcc49729-cdfb-4333-8fac-3b331e3b7841-image.png

      Hier das Skript:

      !2020 copyright tne-systeme UG (haftungsbeschraenk) und Uwe Voigt 
      
      !Definitionen 
      object BCD_D = datapoints.Get("HmIP-MOD-RC8 001460C9ABA6A1:5.STATE"); object BCD_C = datapoints.Get("HmIP-MOD-RC8 001460C9ABA6A1:6.STATE"); object BCD_B = datapoints.Get("HmIP-MOD-RC8 001460C9ABA6A1:7.STATE"); object BCD_A = datapoints.Get("HmIP-MOD-RC8 001460C9ABA6A1:8.STATE"); object Level =dom.GetObject('ZisternePegel_Prozent'); object Fehler =dom.GetObject('Zisterne_Fehler'); object Ueberlauf =dom.GetObject('Zisterne_Ueberlauf'); object Aus =dom.GetObject('Zisterne_Aus'); object noPegel =dom.GetObject('Zisterne_keinPegel');  
      
      !Füllstanddecodierung
       if ((BCD_D.Value()) && (BCD_C.Value()) && (BCD_B.Value()) && (BCD_A.Value())) {Level.State(0);} if ((!BCD_D.Value()) && (!BCD_C.Value()) && (!BCD_B.Value()) && (!BCD_A.Value())) {Level.State(0);} if ((!BCD_D.Value()) && (!BCD_C.Value()) && (BCD_B.Value()) && (!BCD_A.Value())) {Level.State(0);} if ((BCD_D.Value()) && (BCD_C.Value()) && (BCD_B.Value()) && (!BCD_A.Value()))  {Level.State(10);} if ((BCD_D.Value()) && (BCD_C.Value()) && (!BCD_B.Value()) && (BCD_A.Value())) {Level.State(20);} if ((BCD_D.Value()) && (BCD_C.Value()) && (!BCD_B.Value()) && (!BCD_A.Value()))  {Level.State(30);} if ((BCD_D.Value()) && (!BCD_C.Value()) && (BCD_B.Value()) && (BCD_A.Value())) {Level.State(40);} if ((BCD_D.Value()) && (!BCD_C.Value()) && (BCD_B.Value()) && (!BCD_A.Value()))  {Level.State(50);} if ((BCD_D.Value()) && (!BCD_C.Value()) && (!BCD_B.Value()) && (BCD_A.Value())) {Level.State(60);} if ((BCD_D.Value()) && (!BCD_C.Value()) && (!BCD_B.Value()) && (!BCD_A.Value()))  {Level.State(70);} if ((!BCD_D.Value()) && (BCD_C.Value()) && (BCD_B.Value()) && (BCD_A.Value())) {Level.State(80);} if ((!BCD_D.Value()) && (BCD_C.Value()) && (BCD_B.Value()) && (!BCD_A.Value()))  {Level.State(90);} if ((!BCD_D.Value()) && (BCD_C.Value()) && (!BCD_B.Value()) && (BCD_A.Value())) {Level.State(100);}
      
      !Fehlerdecodierung 
      Fehler.State( (!BCD_D.Value()) &&  (!BCD_C.Value()) && (!BCD_B.Value()) && (BCD_A.Value())); Ueberlauf.State( (!BCD_D.Value()) && (BCD_C.Value()) && (!BCD_B.Value()) && (!BCD_A.Value())); Aus.State( (!BCD_D.Value()) && (!BCD_C.Value())&& (!BCD_B.Value()) && (!BCD_A.Value())); noPegel.State( (!BCD_D.Value()) &&  (!BCD_C.Value()) && (BCD_B.Value()) && (!BCD_A.Value())); 
      

      MOD-EDIT: Code in code-tags gesetzt!

      Kann einer von euch sehen wo der Fehler liegt? Weitere Frage, wie kann man dieses Skript in den ioBroker (als Blockly?) übernehmen und dort direkt die Daten auswerten zur Anzeige im VIS (einfach neues Skipt aufmachen und reinkopieren gibt bei mir ne Fehlermeldung)?
      Der Verkäufer ist gewillt das Problem zu lösen, hat aber gerade nicht die Homematik Bauteile vorrätig um zu testen...und ich bin ungeduldig:-)

      Danke euch Det

      posted in Skripten / Logik
      D
      Det-le
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo