Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Script fürTabelle der Batterie Zustände

    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

    Script fürTabelle der Batterie Zustände

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AlexMuc81 last edited by AlexMuc81

      Hallo zusammen,

      obwohl bei mir ein Fensterkontakt leer ist, zeigt mir die Tabelle an, dass alles ok. ist.
      Ich bin jetzt nicht der Profi im Programmieren, aber ich glaube es werden die falschen Datenpunkte
      geprüft.

              $('hmip.*.*.0.lowBat').each(function(id, i) {  
                   // val0=getObject(id).common.name ; 
                     var ida = id.split('.');
                     val0=getObject(ida[0]+"."+ida[1]+"."+ida[2]+"."+ida[3]).common.name 
                     json1=val0;
                     val1help=getState(id).val;
                     if (val1help=="true") {val1=(" <font color=\"red\"> ")+"low bat"; json2="low";json5="red";json3_1=0} else{val1=(" <font color=\"lightgreen\"> ")+"full bat";json2="high";json5="green";json3_1=100} 
                     if (val1help=="true") {val2=symbolKO;json3=symbolKO} else{val2=symbolOK;json3=symbolKO}         
                     if (val1help=="true") AkkuAlarm.push(1);
                     if (val1help=="true")  alarmMessage.push(val0);
      
              
                  json3=val2;
                  json6="HOMEMATIC-IP"
                  if (braucheMaterialDesignWidget || braucheMaterialDesignWidgetTable) {
                    json4=json4=pfadBilderMaterialWidget+"homematick.png"
                    makeJsonWidget(json1,json2,json3,json4,json5,json6,json3_1);}
              let help=[val0,val1,val2]; myObjF.push(help);
      });
      

      Ist im Original script die Zeile 1161 - 1179.

      Wenn ich bei mir jetzt die Datenobjekte anschaue, sieht der so aus bei HomematicIP

      hmip.0.devices.*.channels.0 -> State: true

      der * steht für die ID des Gerätes

      Kann mir da jemand weiterhelfen?
      Danke

      Gruß
      Alex

      liv-in-sky 2 Replies Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @AlexMuc81 last edited by liv-in-sky

        @alexmuc81 sagte in Script fürTabelle der Batterie Zustände:

        der * steht für die ID des Gerätes

        poste mal die ganze id eines datenpunktes, der die battery anzeigt - sollte am ende: .lowBat heißen

        A 1 Reply Last reply Reply Quote 0
        • A
          AlexMuc81 @liv-in-sky last edited by

          @liv-in-sky

          hmip.0.devices.3014F711A00000D709954F99.channels.0.lowBat
          hmip.0.devices.3014F711A00000D709955FBB.channels.0.lowBat
          usw.

          1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @AlexMuc81 last edited by

            @alexmuc81

            der stern steht in diesem selector für mehr als nur devices - es sollte also funktionieren

            ob ich

            hmip.0...channels.0.lowBat

            oder

            hmip.0.*.channels.0.lowBat

            oder

            hmip.0.*.0.lowBat

            schreibe , es wird immer der lowBat gefunden - ein stern kann vieles beinhalten

            wenn der name des gerätes in der tabelle angezeigt ist, ist alles ok vom script her - dann kommt es darauf an was der dp anzeigt - wenn lowBat=true sollte eine warnung angezeigt sein, bei lowBat=false nicht - was zeigt der dp an ?

            A 1 Reply Last reply Reply Quote 0
            • A
              AlexMuc81 @liv-in-sky last edited by AlexMuc81

              @liv-in-sky

              lowBat=true

              lowBat.JPG

              Ich hab mir in der Console gerade mal val1help ausgeben lassen. Da stehen ja die
              Werte drin:

              javascript.0 2022-03-13 23:00:37.026	info	script.js.akkutabelle: true
              

              Zweiter Test war dann die Zeile mit einem Console.log auszustatten

              if (val1help=="true") {console.log("Test");val1=(" <font color=\"red\"> ")+"low bat"; json2="low";json5="red";json3_1=0} else{console.log("Test2");val1=(" <font color=\"lightgreen\"> ")+"full bat";json2="high";json5="green";json3_1=100} 
              
              

              Das wiederum brachte:

              
              javascript.0 2022-03-13 23:03:42.247	info	script.js.akkutabelle: Test2
              
              javascript.0 2022-03-13 23:03:42.247	info	script.js.akkutabelle: false
              
              javascript.0 2022-03-13 23:03:42.247	info	script.js.akkutabelle: Test2
              
              javascript.0 2022-03-13 23:03:42.246	info	script.js.akkutabelle: true
              
              javascript.0 2022-03-13 23:03:42.246	info	script.js.akkutabelle: Test2
              
              javascript.0 2022-03-13 23:03:42.246	info	script.js.akkutabelle: false
              

              Also irgendwie funktioniert val1help=="true" nicht.....

              liv-in-sky 1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @AlexMuc81 last edited by liv-in-sky

                @alexmuc81 mache mal alle anführungszeichen um das true weg - was passiert dann ?

                 if (val1help==true) {val1=(" <font color=\"red\"> ")+"low bat"; json2="low";json5="red";json3_1=0} else{val1=(" <font color=\"lightgreen\"> ")+"full bat";json2="high";json5="green";json3_1=100} 
                               if (val1help==true) {val2=symbolKO;json3=symbolKO} else{val2=symbolOK;json3=symbolKO}         
                               if (val1help==true) AkkuAlarm.push(1);
                               if (val1help==true)  alarmMessage.push(val0);
                
                A 1 Reply Last reply Reply Quote 0
                • A
                  AlexMuc81 @liv-in-sky last edited by

                  @liv-in-sky

                   if (val1help) {val1=(" <font color=\"red\"> ")+"low bat"; json2="low";json5="red";json3_1=0} else{val1=(" <font color=\"lightgreen\"> ")+"full bat";json2="high";json5="green";json3_1=100} 
                  if (val1help) {val2=symbolKO;json3=symbolKO} else{val2=symbolOK;json3=symbolKO}         
                  if (val1help) AkkuAlarm.push(1);
                  if (val1help)  alarmMessage.push(val0);
                  

                  ich habe es auf die gleiche abfrage wie in der Schleife davor geändert und schon
                  funktioniert es. Danke für den Tip. Keine Ahnung warum ich darauf nicht selbst gekommen bin...

                  liv-in-sky 1 Reply Last reply Reply Quote 0
                  • liv-in-sky
                    liv-in-sky @AlexMuc81 last edited by

                    @alexmuc81

                    alles gut - weiß nicht, warum das da so drin ist - evtl hat sich in der zwischenzeit beim adapter was geändert

                    1 Reply Last reply Reply Quote 1
                    • hg6806
                      hg6806 Most Active last edited by

                      Hallo zusammen,

                      auch wenn ich über keine Programmier-Kenntnisse verfüge würde ich gerne das Skript zum Laufen bekommen.
                      Die Variablen habe ich angelegt.
                      Jedoch meldet Javascript nach dem Starten immer "Instanz ist deaktiviert"
                      Fehlen da noch Adapter? Ich habe nur erst einmal Homematic und Zigbee auf true gesetzt.

                      liv-in-sky arteck 2 Replies Last reply Reply Quote 0
                      • arteck
                        arteck Developer Most Active last edited by

                        @hg6806 sagte in Script fürTabelle der Batterie Zustände:

                        Jedoch meldet Javascript nach dem Starten immer "Instanz ist deaktiviert"

                        du als "Most Active" musst aber auch wissen dass ohne LOG nix geht..

                        1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @hg6806 last edited by

                          @hg6806 sagte in Script fürTabelle der Batterie Zustände:

                          Die Variablen habe ich angelegt.

                          ich denke du meinst den datenpunkt - type zeichenkette - hast du angelegt

                          hast du das ganze mit firefox integriert ? nimm chrome oder edge

                          und wie erwähnt: das log wäre nicht schlecht

                          1 Reply Last reply Reply Quote 0
                          • hg6806
                            hg6806 Most Active last edited by

                            Moin!

                            Hätte ich ja schon gemacht, aber ich bekomme nichts im Log trotz Debug und Verbose:

                            a4f156a7-f52e-4e08-b0af-92567e5ccf93-image.png

                            liv-in-sky 2 Replies Last reply Reply Quote 0
                            • liv-in-sky
                              liv-in-sky @hg6806 last edited by

                              @hg6806 ist den die javascript-instanz aktiviert ?

                              1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @hg6806 last edited by

                                @hg6806 und debug und verbose kannst du abschalten

                                1 Reply Last reply Reply Quote 0
                                • arteck
                                  arteck Developer Most Active @hg6806 last edited by

                                  @liv-in-sky sagte in Script fürTabelle der Batterie Zustände:

                                  Jedoch meldet Javascript nach dem Starten immer "Instanz ist deaktiviert"

                                  im script wird geprüft ob die abzufragenden Datenpunkte dessen adapter somit instanz läuft ..

                                  @hg6806 muttu mal schauen ist relativ oben da ist ne liste

                                  1 Reply Last reply Reply Quote 0
                                  • hg6806
                                    hg6806 Most Active last edited by hg6806

                                    Ja, Javascript Instanz ist natürlich aktiv.

                                    Muss ich die denn auch noch anlegen?

                                    let   braucheEinVISWidget=true;                     // bei true wird ein html-tabelle in einen dp geschrieben - MUSS ANGELEGT WERDEN !!!
                                    let   braucheMaterialDesignWidget=false;             // bei true wird ein json in einen dp geschrieben - MUSS ANGELEGT WERDEN !!!
                                    let   braucheMaterialDesignWidgetTable=false;        // bei true wird ein json in einen dp geschrieben - MUSS ANGELEGT WERDEN !!!
                                    

                                    Im Skript steht, dass es angelegt werden muss, ganz oben im ersten Post nur die 5 Datenpunkte.

                                    liv-in-sky 2 Replies Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @hg6806 last edited by

                                      @hg6806 eigentlch nur die :

                                       let dpVIS="0_userdata.0.CONTROL-OWN.TABELLEN.AKKU" ;           //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget - zeichenkette(string)
                                      let dpAlarm="0_userdata.0.CONTROL-OWN.TABELLEN.AkkuAlarm";      // muss erstellt werden - datenpunkt erstellen vom typ "number" - bei 0 kein alarm und größer 0 die anzahl der schlechten batterien
                                      let dpAlarmMessage="0_userdata.0.CONTROL-OWN.TABELLEN.AkkuMeessage";                    // muss erstellt werden -  datenpunkt erstellen vom typ "string" Inhalt - alle devices mit lowbat-alarmen
                                      let dpMaterialWidget="0_userdata.0.CONTROL-OWN.TABELLEN.AkkuMaterialWidget";            // WICHTIG wenn braucheMaterialDesignWidget auf true MATERIALDESIGN List Widget - datenpunkt anlegen : zeichenkette  
                                      let dpMaterialWidgetTable="0_userdata.0.CONTROL-OWN.TABELLEN.AkkuMaterialWidgetTable";  // WICHTIG wenn braucheMaterialDesignWidgetTable auf true MATERIALDESIGN Table W
                                      

                                      wie du die benennst und erstellst kannst du selbst bestimmen - dann halt im script angleichen

                                      hg6806 1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @hg6806 last edited by

                                        @hg6806 schau mal in den chat

                                        1 Reply Last reply Reply Quote 0
                                        • hg6806
                                          hg6806 Most Active @liv-in-sky last edited by

                                          @liv-in-sky

                                          Genau, wie oben beschrieben hatte ich die alle angelegt.
                                          Müssen sonst irgendwelche Adapter installiert erden?
                                          Klar, Homematic auf jeden Fall, Zigbee auch, habe ich ja auch True gesetzt

                                          liv-in-sky 1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @hg6806 last edited by liv-in-sky

                                            @hg6806

                                            nee, da muss nichts mehr installiert werden - selbst wenn die adapter nicht angelegt sind, sollte nix passieren - die werden dann eigentlich nur nicht gefunden und nicht bearbeitet

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            884
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript monitoring template
                                            67
                                            1379
                                            415425
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo