Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] BHKW Status abfragen

    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

    [gelöst] BHKW Status abfragen

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

      Hallo Forengemeinde,

      ich bin ziemlich neu bei iobroker und hab nun schon ein bisschen rumprobiert. Ich kann meine HM-Lampen steuern, Rollos bewegen und SmartMeter (Hager eHz) abfragen. Jetzt würde ich gerne mein BHKW (Senertec Dachs HKA) abfragen, um die erzeugte Leistung, Temperaturen und Zustände abzugreifen. Nur leider war ich mit javascript bisher überhaupt nicht zu Gange. Auch mit API hab ich keinerlei Erfahrungen. Bisher hab ich das in IP-Symcon mit php gemacht, und auch da nur mit einigem rumprobieren.

      Ein Aufruf bzw. eine Abrage hab ich in ip-symcon bisher so gelöst:

      Damals bin ich nach dieser Anleitung vorgegangen: https://www.symcon.de/forum/threads/158 … n-Ethernet

      Wie lässt sich so etwas nun in iobroker umsetzen? Wer kann mir hier Tipps geben?

      Gruß

      jgoller

      1 Reply Last reply Reply Quote 0
      • Thisoft
        Thisoft last edited by

        Probier mal das folgende Script:

            var url="http://user:pass@192.168.x.xx:8080/getKey?k=Hka_Mw1.sWirkleistung&k=Hka_Mw1.ulMotorlaufsekunden&k=Hka_Mw1.Aktor.bWwPumpe&k=Hka_Mw1.Aktor.fFreiAltWaerm&k=Hka_Mw1.Aktor.fUPHeizkreis1&k=Hka_Mw1.Aktor.fUPHeizkreis2";
            var req=require('request');
        
            req.get(url,function(error,response,body){
            if(body){
                log(body,"info");
            }
            else
                {log(error + response,"warn");}
            });
        

        Wenn damit erstmal Daten ins Log geschrieben werden hast du gewonnen…

        1 Reply Last reply Reply Quote 0
        • J
          jgoller last edited by

          Hey Thiesoft,

          perfekt, DANKE. Im Log stehen die Daten vom BHKW. Jetzt muss ich nur mal sehen, wie ich die Abfrage aufdrösel und die Werte in die Objekte? bekomme. Ich bin in Javascript leider ne absolute Null. Vielleicht hast ja noch einen Hinweis oder einen Thread, wo ich so was nachlesen kann??

          1 Reply Last reply Reply Quote 0
          • Thisoft
            Thisoft last edited by

            Schön dass das erstmal klappt.

            Stell mal ein Beispiel der geloggten Daten hier rein. Das Aufdröseln ist üblicherweise mit wenigen Zeilen erledigt…

            1 Reply Last reply Reply Quote 0
            • J
              jgoller last edited by

              Das Log sieht so aus:

              ! smartmeter.0 2017-09-10 12:46:11.207 info Received 7 values, 3 updated javascript.0 2017-09-10 12:46:05.155 info Hka_Mw1.sWirkleistung=0.000 javascript.0 2017-09-10 12:46:05.155 info Hka_Mw1.Temp.sbAussen=1.600 javascript.0 2017-09-10 12:46:05.155 info Hka_Mw1.Aktor.bWwPumpe=0 javascript.0 2017-09-10 12:46:05.155 info Hka_Mw1.Aktor.fUPHeizkreis1=false javascript.0 2017-09-10 12:46:05.155 info script.js.common.BhkwDaten: Hka_Mw1.Aktor.fUPHeizkreis2=false javascript.0 2017-09-10 12:46:05.044 info script.js.common.BhkwDaten: registered 0 subscriptions and 0 schedules javascript.0 2017-09-10 12:46:04.846 info Start javascript script.js.common.BhkwDaten javascript.0 2017-09-10 12:46:04.822 info Stop script script.js.common.BhkwDaten smartmeter.0 2017-09-10 12:45:49.231 info Received 7 values, 3 updated hm-rpc.1 2017-09-10 12:45:44.583 info xmlrpc -> 0 devices hm-rpc.1 2017-09-10 12:45:44.576 info xmlrpc <- listDevices ['hm-rpc.1'] smartmeter.1 2017-09-10 12:45:36.581 info Received 7 values, 3 updated smartmeter.0 2017-09-10 12:45:27.237 info Received 7 values, 3 updated !

              Hab jetzt mal nur den Abschnitt genommen, wenn ich das Skript ausführe. Das sind erstmal die wichtigsten BHKW-Parameter: aktuelle Wirkleistung, Aussentemperatur, Brauchwasser Ladepumpe in %, Heizkreispumpe 1 und 2 true/false. Wenn ich mal verstanden habe, wie es geht, kann ich das ja noch erweitern.

              Gruß

              jgoller

              1 Reply Last reply Reply Quote 0
              • Thisoft
                Thisoft last edited by

                Ändere mal die Zeile:

                        log(body,"info");
                
                

                in:

                log(body.split("Hka_")[0]);
                

                und poste nochmal das Ergebnis. Da hier offensichtlich Zeilenumbrüche im Rückgabewert sind muss ich mich mal ein wenig "rantasten"…

                1 Reply Last reply Reply Quote 0
                • J
                  jgoller last edited by

                  Ich habe die Zeile ersetzt, nun kommt folgendes Ergebnis:

                  22:42:33.451	[info]	javascript.0 Start javascript script.js.common.BhkwDaten
                  22:42:33.452	[info]	javascript.0 script.js.common.BhkwDaten: registered 0 subscriptions and 0 schedules
                  22:42:33.590	[info]	javascript.0 script.js.common.BhkwDaten:
                  

                  Gruß

                  1 Reply Last reply Reply Quote 0
                  • Thisoft
                    Thisoft last edited by

                    Hmm - da muss ich noch ein wenig probieren. Bin jetzt nicht an meinem System…

                    Versuchs mal mit der Zeile:

                    log(JSON.stringify(body.split("Hka_")));
                    
                    1 Reply Last reply Reply Quote 0
                    • J
                      jgoller last edited by

                      Guten Morgen

                      nun erhalte ich folgende Ausgabe:

                      08:08:01.228	[info]	javascript.0 Stop script script.js.common.BhkwDaten
                      08:08:01.506	[info]	javascript.0 Start javascript script.js.common.BhkwDaten
                      08:08:01.507	[info]	javascript.0 script.js.common.BhkwDaten: registered 0 subscriptions and 0 schedules
                      08:08:01.701	[info]	javascript.0 script.js.common.BhkwDaten: ["","Mw1.Aktor.fUPHeizkreis2=true\n","Mw1.Aktor.fUPHeizkreis1=true\n","Mw1.Aktor.bWwPumpe=0\n","Mw1.Temp.sbAussen=1.100\n","Mw1.sWirkleistung=0.000\n\n"
                      
                      

                      Ich blicke den Code nicht bzw. nur teilweise. Da muss ich noch einigen Code studieren!

                      Gruß

                      jgoller

                      1 Reply Last reply Reply Quote 0
                      • Thisoft
                        Thisoft last edited by

                        Gut, das hilft mir schon weiter. Damit sollte ich dir heute abend was basteln können.

                        Einen Versuch könntest Du trotzdem noch machen - kann aber sein dass Javascript da einen Fehler wirft. So ganz hab ich die Gepflogenheiten von Javascript auch nicht intus, ist nicht direkt meine bevorzugte Programmiersprache…

                        log(JSON.stringify(body.split("\n")));
                        
                        1 Reply Last reply Reply Quote 0
                        • J
                          jgoller last edited by

                          Keine Fehlermeldungen, folgendes erscheint im Log:

                          10:07:58.499	[info]	javascript.0 Stop script script.js.common.BhkwDaten
                          10:07:58.780	[info]	javascript.0 Start javascript script.js.common.BhkwDaten
                          10:07:58.781	[info]	javascript.0 script.js.common.BhkwDaten: registered 0 subscriptions and 0 schedules
                          10:07:58.875	[info]	javascript.0 script.js.common.BhkwDaten: ["Hka_Mw1.Aktor.fUPHeizkreis2=false","Hka_Mw1.Aktor.fUPHeizkreis1=false","Hka_Mw1.Aktor.bWwPumpe=0","Hka_Mw1.Temp.sbAussen=1.600","Hka_Mw1.sWirkleistung=0.000","",""]
                          
                          

                          Was mir auffällt: zB bei Hka_Mw1.Temp.sbAussen=1.600 , soll natürlich 16.00 sein. Da lässt sich später bestimmt noch irgendwo ein Faktor (hier x10) definieren, oder?

                          Echt Hammer, welche Mühe du dir machst. DANKE!!

                          Gruß

                          1 Reply Last reply Reply Quote 0
                          • Thisoft
                            Thisoft last edited by

                            Sehr gut. Machen wir noch einen Versuch. Muss ich heute Abend nicht so viel testen 😉

                            var gesplittet = body.split("\n").split("="));
                            log(JSON.stringify(gesplittet);
                            log(gesplittet[1][0]);
                            
                            1 Reply Last reply Reply Quote 0
                            • J
                              jgoller last edited by

                              Okay. Hier kam ne Fehlermeldung:

                              12:31:41.832	[error]	javascript.0 script.js.common.BhkwDaten compile failed: SyntaxError: Unexpected token )
                              

                              In der ersten Zeile ist ein ) zu viel, dafür fehlt es in der zweiten Zeile. Ich hab das mal korrigiert, dann kommt im Logfile:

                              12:35:32.032	[error]	javascript.0 TypeError: body.split(...).split is not a function at Request._callback (script.js.common.BhkwDaten:20:35) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:188:22) at emitTwo (events.js:87:13) at Request.emit (events.js:172:7) at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1171:10) at emitOne (events.js:77:13) at Request.emit (events.js:169:7) at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1091:12) at IncomingMessage.g (events.js:260:16) at emitNone (events.js:72:20)
                              

                              Hoffe, das hilft dir weiter!

                              Gruß

                              1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 last edited by

                                Versuche es mal so:

                                var gesplittet = body.split("\n");
                                log(JSON.stringify(gesplittet));
                                log(gesplittet[1].split("=")[0]);
                                
                                1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 last edited by

                                  Da die Rückgabe in umgekehrter Reihenfolge zum Abfrage-String erfolgt, erhältst Du so die Werte:

                                  var list = body.split("\n");
                                  var hk2  = toBoolean(list[0].split("=")[1]);
                                  var hk1  = toBoolean(list[1].split("=")[1]);
                                  var bww  = toBoolean(list[2].split("=")[1]);
                                  var at   = 10 * parseFloat(list[3].split("=")[1]);
                                  var power = parseFloat(list[4].split("=")[1]);
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • J
                                    jgoller last edited by

                                    Hey Thisoft und paul53,

                                    ich DANKE euch wie verrückt. Es läuft, die Variablen werden mit (den richtigen) Werten bestückt. Damit kann ich jetzt arbeiten und das mit den mir wichtigen Sachen erweitern.

                                    Ob sich daraus vielleicht sogar ein Adapter für die wichtigen bzw. gebräuchlichsten (verbreitetsten) Heizungen bauen lässt? Vielleicht hat ja mal jemand Lust dazu!

                                    Wenn ich das mal soweit hab, kann ich ja das Skript mal hier noch rein posten!

                                    Gruß

                                    jgoller

                                    1 Reply Last reply Reply Quote 0
                                    • Thisoft
                                      Thisoft last edited by

                                      Ooch - jetzt wird mir doch heut abend langweilig und ihr seid schuld :lol:

                                      Super dass es jetzt läuft. Siehst Du war doch gar nicht schwer…

                                      1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 last edited by paul53

                                        @jgoller:

                                        Es läuft, die Variablen werden mit (den richtigen) Werten bestückt.

                                        Dann markiere bitte das Thema als gelöst (im ersten Beitrag).

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          sim2 last edited by

                                          Hallo,

                                          könnte ich mal das ganz Script sehen ?

                                          Gruß

                                          Tim

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          618
                                          Online

                                          31.9k
                                          Users

                                          80.2k
                                          Topics

                                          1.3m
                                          Posts

                                          4
                                          19
                                          1835
                                          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