Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Profile
    • Following 0
    • Followers 0
    • Topics 171
    • Posts 1009
    • Best 25
    • Groups 4

    sissiwup

    @sissiwup

    39
    Reputation
    366
    Profile views
    1009
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    sissiwup Follow
    Forum Testing Pro Starter Most Active

    Best posts made by sissiwup

    • Sonoff RF Bridge Tasmota und Portisch 433mhz

      Hallo, ich habe hier ein kleines Skript geschrieben um die Sonoff Bridge komfortabel zu nutzen. Die Einrichtung ist oft beschrieben. Ich habe es mir einfach gemacht und die Bridge mit Tasmota 8.1 und Portisch fertig gekauft (für ca. 12 Euro).

      Nachdem die Bridge in euren Netz ist, installiert den sonoff adapter und verbindet die Bridget mit den Adapter. Das sollte dann so aussehen:

      Bildschirmfoto 2020-11-06 um 23.13.04.png

      Wenn die Punkte RfRaw und RFRaw_Data noch nicht da sind, dann in der Konsole von Tasmota rfraw 177 eingeben und mit einer Fernbedienung eine Taste drücken.

      Im Skript müßt ihr mindestens den Pfad zu RfRaw angeben.
      Wenn der Datenpunkt bei euch also sonoff.123.myBridge.RfRaw heißt, dann
      sonoff.123.myBridge. (mit Punkt)

      //Version 0.9 15.11.2020
      let bridgename="javascript.0.bridge.";  //speicherort der Variablen
      let sonoff="sonoff.0.Tasmota_21.";  // wo ist RfRaw und RfRaw_Data
      
      createState(bridgename+"learn",false,{type: "boolean", role: "button"});
      createState(bridgename+"counter",1000,{type: "number", role: "state"});
      createState(bridgename+"learning","off",{type: "string", role: "state"});
      createState(bridgename+"lastcode","?",{type: "string", role: "state"});
      createState(bridgename+"lastdate","?",{type: "string", role: "state"});
      createState(bridgename+"lastname","?",{type: "string", role: "state"});
      
      var counter=getState(bridgename+"counter").val;
      
      setState(bridgename+'learn',false);
      setState(bridgename+'learning',"off");
      setState(sonoff+'RfRaw',"177");
      
      on(bridgename+'learn',function(obj) {
          if (obj.state.val) {
              if (getState(bridgename+'learning').val=="off") {
                  setState(sonoff+'RfRaw',"177");
                  setState(bridgename+'learning',"on");
              } else {
                  setState(bridgename+'learning',"off");
              }
          }
          setState(bridgename+'learn',false);
      })
      
      on(sonoff+'RfReceived_Data',function(obj){
              console.log(obj.state.val);
              setState(sonoff+'RfRaw',"177");
      
      })
      
      function attachListener() {
          setTimeout(function() { 
              $('state[id='+bridgename+'code.*.send]').on(function (id, i) {
                  buttonPress(id);
              });
              $('state[id='+bridgename+'code.*.name]').on(function (obj, i) {
                  nameChanged(obj);
              });
          ;}, 2000);
          setTimeout(function() { 
              $('state[id='+bridgename+'code.*.send]').on(function (id, i) {
                  buttonPress(id);
              });
              $('state[id='+bridgename+'code.*.name]').on(function (obj, i) {
                  nameChanged(obj);
              });
          ;}, 10000);
      }
      
      function nameChanged(obj) {
          if (obj.state.val==obj.oldState.val) {
              console.log("ALT=NEU");
              return;
          }
          var oldnam=obj.id.substr(0,obj.id.length-4);
          var nam=obj.state.val;
          var newnam=bridgename+"code."+nam+".";
          console.log(newnam);
          console.log(oldnam);
          console.log(getState(oldnam+"org"));
          createStates(newnam,nam,getState(oldnam+"org").val,getState(oldnam+"count").val,getState(oldnam+"transform").val);
          setTimeout(function() {
              deleteState(oldnam+"send");
              deleteState(oldnam+"name");
              deleteState(oldnam+"recieved");
              deleteState(oldnam+"org");
              deleteState(oldnam+"count");
              deleteState(oldnam+"transform");
              attachListener();
          },1000);
      }
      
      $('state[id='+bridgename+'code.*.name]').on(function (obj, i) {
          nameChanged(obj);
      });
      
      function buttonPress(obj) {
          if (obj.state.val==true) {
              console.log("Pressed: " + obj.id);
              setState(obj.id,false);
              var nam=obj.id.substr(0,obj.id.length-4);
              var code=getState(nam+"transform").val;
           //   console.log(code);
              setState(sonoff+'RfRaw',"177");
              setState(sonoff+'RfRaw',code);
              setState(sonoff+'RfRaw',"177");
          }
      
      }
      
      var SelectorButtons = $('state[id='+bridgename+'code.*.send]');
      SelectorButtons.each(function (id, i) {
              setState(id,false);
      });
      
      var SelectorRecieved = $('state[id='+bridgename+'code.*.org]');
      SelectorRecieved.each(function (id, i) {
              console.log("Bekannte Codes:" + getState(id).val);
      });
      
      function createStates(prefix,name,org,count,newcode) {
          // console.log("New:" + prefix + "-" +name);
              createState(prefix+"send",false,{type: "boolean", role: "button"});
              createState(prefix+"name",name,{type: "string", role: "info"});
              createState(prefix+"recieved", formatDate(new Date(), "JJJJ.MM.TT SS:mm:ss"),{type: "string", role: "state"});
              createState(prefix+"org",org,{type: "string", role: "state"});
              createState(prefix+"count",count,{type: "number", role: "state"});
              createState(prefix+"transform",newcode,{type: "string", role: "state"});
      }
      
      on(sonoff+'RfRaw_Data',function(obj){
          var code=obj.state.val;
          setState(bridgename+"lastcode",code);
          setState(bridgename+"lastdate",formatDate(new Date(), "JJJJ.MM.TT SS:mm:ss"))
          if (code=="AAA055") return;
          if (code.length<12) return;
          var elems=code.split(" ");
      
          $('state[id='+bridgename+'code.*.org]').each(function (id, i) {
              var akt=getState(id).val
              if (akt!=null) {
                  akt=akt.split(" ");
                  if (elems[elems.length-2]==akt[akt.length-2]) {
                      var nam=id.substr(0,id.length-3);
                      setState(nam+"count",getState(nam+"count").val+1);
                      setState(nam+"recieved", formatDate(new Date(), "JJJJ.MM.TT SS:mm:ss"));
                      var lastname=nam.substr(0,nam.length-1).split(".");
                      setState(bridgename+"lastname",lastname[lastname.length-1]);
                      //  return false;
                  }
              }
          });
      
          if (getState(bridgename+'learning').val=="on") {
      //        console.log("Neu  : " + code);
              $('state[id='+bridgename+'code.*.org]').each(function (id, i) {
                  var akt=getState(id).val;
                  if (akt!=null) {
                      akt=akt.split(" ");
                      if (elems[elems.length-2]==akt[akt.length-2]) {
                          console.log("Code bekannt:" + id);
                          code="";
                          return false;
                      }
                  }
              });
              if (code=="") return;
              console.log("Schreib:" + code);
             // return;
              counter=counter+1;
              setState(bridgename+'counter',counter);
      
              var name=bridgename+"code."+String(counter)+".";
              var laenge=2;
              var newcode="";
              for (let i=3;i<elems.length;i++) {
                  newcode=newcode+" "+elems[i];
                  laenge=laenge+elems[i].length;
              }
              laenge=laenge/2;
              var newcode=elems[0]+" B0 "+laenge.toString(16)+" "+elems[2]+" 08"+newcode;
              createStates(name,"unbekannt",obj.state.val,1,newcode);
              attachListener();
          } 
          
      
      })
      
      attachListener();
      schedule("*/20 * * * *", function () {
          setState(sonoff+'RfRaw',"177");
      });
      
      
      
      

      Nach dem Start seht ihr folgende Punkte:
      Bildschirmfoto 2020-11-06 um 23.18.28.png
      (code ist bei euch noch leer, also nich sichtbar).

      Wenn ihr auf learn drückt, dann startet ihr den Lernmodus:
      Bildschirmfoto 2020-11-06 um 23.20.49.png

      nochmal auf learn, oder Skipt neu starten, geht wieder in den normalen Modus.

      Bildschirmfoto 2020-11-06 um 23.21.37.png

      Oben seht ihr, dass ich 2 Tasten angelernt habe.

      • count=wie oft wurde die Fernbedienung gedrückt.
      • name=Name der Taste
      • org=Aufgezeichneter Code
      • recieved=wann das letzte mal empfangen
      • send=Code über sonoff Bridge senden
      • transform=für Portisch umgerechnete code (falls das mit euren nicht geht, hier den von der Website umgerechneten eintragen)

      Wenn man sich nicht sicher ist, welche Taste welche war, einfach im "Nicht-Lernmodus" Taste drücken. Dann wird count und recieved upgedatet.

      Um die Codes einfacher in Skripten etc. verwenden zu können, kann man in name die Bezeichnung des codes eingeben (keine Leerzeichen, Sonderzeichen etc).

      Dann benennt er den Zweig entsprechend um:

      Bildschirmfoto 2020-11-06 um 23.29.16.png
      (habe mich doch für deutsch entschieden FB_1_an)
      Bildschirmfoto 2020-11-06 um 23.31.47.png

      Solle bei vielen Anlernvorgängen das umbenennen haken, einfach das Skript neu starten.

      Viel Spaß damit, wie man sicher sieht ist JS nicht meine erste Programmiersprache, aber es läuft...

      posted in Skripten / Logik
      sissiwup
      sissiwup
    • Grafana und Prometheus in iobroker ein-bzw.anbinden

      Was ist das Ziel: Ein grafisches Dashboard für iobroker-Grafiken:

      609_graf1.jpg

      Und eine Überwachung des Rechners etc.

      609_graf2.jpg

      Welche Schritte braucht man dafür:

      1.) History in MySql

      Hier erweitern die die Tabellen für eine einfachere Verwendbarkeit

      Export der notwendigen Werte per Script

      2.) Installation grafana

      3.) Anbindung grafana an mySQL

      Datenreihen in grafana anzeigen

      4.) Installation prometheus

      und prometheus-node-exporter

      5.) Anbindung prometheus an grafana

      Import von Beispiel-Dashboards

      6.) Integration grafana in vis

      7.) Überwachung mysql mit prometheus-mysql-exporter (inArbeit)

      => für jeden Punkt werde ich einen eigenen Artikel in diesen Thread schreiben.

      posted in Praktische Anwendungen (Showcase)
      sissiwup
      sissiwup
    • RE: Wasserzähler - Selfmade

      Hallo,

      anbei nochmal ein Tipp für die Visualisierung in Grafana:

      Bildschirmfoto 2020-01-02 um 14.09.09.png

      Ich habe den Verbrauch und den aktuellen Verbrauch pro Stunde in ein Diagramm gepackt:

      SELECT
      floor(n.ts/1000) as time_sec,
      (max(n.val)-min(n.val))*1000 as value,
      "Wasser/h" as metric
      FROM ts_string n
      WHERE $__unixEpochFrom()*1000<n.ts and $__unixEpochTo()*1000>n.ts and n.id = 2372 and n.id
      group by date_format(from_unixtime(ts/1000),"%Y-%m-%d-%H") ORDER BY n.ts ASC
      

      Ja, das ist nicht 100% genau (also es wird nicht der Wert um exakt der vollen Stunde genommen, sondern der nächst größere, aber für mich reicht es)

      posted in Hardware
      sissiwup
      sissiwup
    • Sqlite nach mysql umziehen

      Hallo,

      wer seine sqlite Daten nach mysql umziehen möchte, anbei eine Skizze, wie das geht:

      Daten aus sqlite exportieren:

      cd /opt/iobroker/iobroker-data/sqlite
      sqlite3
      .open sqlite.db
      .mode csv
      .output sources
      select * from sources;
      .output datapoints
      select * from datapoints;
      .output ts_bool
      select * from ts_bool;
      .output ts_numer
      select * from ts_number;
      .output ts_string
      select * from ts_string;
      .exit
      
      

      In der mysql-DB anmelden und Importtabellen erzeugen (ich nutze dafür toad)

      create TABLE iobroker.old_ts_bool like iobroker.ts_bool;
      create TABLE iobroker.old_ts_number like iobroker.ts_number;
      create TABLE iobroker.old_ts_string like iobroker.ts_string;
      create TABLE iobroker.old_datapoints like iobroker.datapoints;
      create TABLE iobroker.old_sources like iobroker.sources;
      
      

      Dann für jede Tabelle die Daten importieren (also 5x):

      LOAD DATA INFILE '/opt/iobroker/iobroker-data/sqlite/sources' 
      INTO TABLE iobroker.old_sources 
      FIELDS TERMINATED BY ',' 
      LINES TERMINATED BY '\n';
      

      Spalten hinzufügen:

      alter TABLE iobroker.old_datapoints ADD new_id int;
      alter TABLE iobroker.old_sources ADD new_id int;
      

      neue id´s raussuchen und in die neuen Spalten einfügen(der select ist nur zum Prüfen):

      select * from iobroker.old_datapoints o,iobroker.datapoints d where o.name=d.name;
      update iobroker.old_datapoints o SET new_id = (select id FROM iobroker.datapoints d WHERE d.name=o.name);
      select * from iobroker.old_sources o,iobroker.sources s where o.name like concat("%",s.name,"%") ;
      update iobroker.old_sources o SET new_id = (select id FROM iobroker.sources s WHERE o.name like concat("%",s.name,"%"));
      

      Jetzt noch die Daten übertragen (bitte _string,_bool und _number)(also 3x):

      select s.new_id as _from,ack,d.new_id as id,q,ts,val 
      from iobroker.old_ts_string o,iobroker.old_datapoints d,iobroker.old_sources s 
      WHERE o.id = d.id and d.new_id IS NOT NULL and o._from = s.id and s.new_id IS NOT NULL ;
      
      insert INTO  iobroker.ts_string (_from,ack,id,q,ts,val) (select s.new_id as _from,ack,d.new_id as id,q,ts,val 
      from iobroker.old_ts_string o,iobroker.old_datapoints d,iobroker.old_sources s 
      WHERE o.id = d.id and d.new_id IS NOT NULL and o._from = s.id and s.new_id IS NOT NULL );
      

      Anschließend noch die Import-Tabellen wieder leeren:

      delete FROM iobroker.old_datapoints ;
      delete FROM iobroker.old_sources  ;
      delete FROM iobroker.old_ts_bool  ;
      delete FROM iobroker.old_ts_number  ;
      delete FROM iobroker.old_ts_string  ;
      
      posted in ioBroker Allgemein
      sissiwup
      sissiwup
    • RE: Adapter: broadlink2

      @AingTii sagte in Adapter: broadlink2:

      Hallo Zusammen,

      wo ich das grad lese mit dem Rolling Code usw.
      Hat jemand Erfahrungen mit dem RM Pro+ ob man damit die Somfy RTS Rolläden steuern kann?

      da diese zum einen auf 433,42 statt 433,92 Mhz laufen und anderen RollingCode verwenden,
      soweit ich das noch weiß wir bei denen eine Nummer im Gesamtbefehl immer weiter hochgezählt mit
      jedem Befehl.

      Steuert schon jemand damit Somfy RTS Rollladenmotoren?

      Hi,

      schau mal ins Homematic-Forum, da gibt es für den CUL eine Steuerung für SOMFY. Ich nutze diese selbst. Funktioniert ohne Probleme. Allerdings nicht über broadlink.

      posted in Entwicklung
      sissiwup
      sissiwup
    • Corona-Daten nach MySQL importieren

      Hallo,

      es gibt ja einen neuen Adapter, der die Daten für VIS bereit stellt.
      Um eine Auswertung hinzubekommen die auch einen Mehrwert hat, importiere ich die Daten aber direkt in die MySql-DB (erstmal nur Deutschland).

      Was ist zu tun:

      Skript zum abholen der Daten und Einspielen:
      Verzeichnis bei mir: /var/skripte
      Daten in /var/skripte/daten
      DB: iobroker
      DB-User: DBUSER
      DB-Passwort: DBPASSWORT

      #!/bin/bash
      NOW=`date +"%d.%m.%g %H:%M.%S"`
      NOWDAT=`date +"%d_%m_%g"`
      USER=DBUSER
      PASS=DBPASSWORT
      
      rm /var/skripte/data/*.csv
      wget -O /var/skripte/data/cor_rki.csv https://opendata.arcgis.com/datasets/dd4580c810204019a7b8eb3e0b329dd6_0.csv
      wget -O /var/skripte/data/cor_landkreise.csv https://opendata.arcgis.com/datasets/917fc37a709542548cc3be077a786c17_0.csv
      wget -O /var/skripte/data/cor_bundesland.csv https://opendata.arcgis.com/datasets/ef4b445a53c1406892257fe63129a8ea_0.csv
      
      cp /var/skripte/data/cor_rki.csv /var/skripte/data/rki_$NOWDAT.csv.backup
      cp /var/skripte/data/cor_landkreise.csv /var/skripte/data/landkreise_$NOWDAT.csv.backup
      cp /var/skripte/data/cor_bundesland.csv /var/skripte/data/bundesland_$NOWDAT.csv.backup
      
      mysql -u $USER -p$PASS iobroker < /var/skripte/data/createTable.txt
      
      mysqlimport --fields-terminated-by=, --ignore-lines=1 --verbose --delete --local -u $USER -p$PASS iobroker /var/skripte/data/cor_rki.csv
      mysqlimport --fields-terminated-by=, --ignore-lines=1 --verbose --delete --local -u $USER -p$PASS iobroker /var/skripte/data/cor_landkreise.csv
      mysqlimport --fields-terminated-by=, --ignore-lines=1 --verbose --delete --local -u $USER -p$PASS iobroker /var/skripte/data/cor_bundesland.csv
      

      create Table kann man nach dem ersten mal auskommentieren 🙂

      im Verzeichnis data liegt dann die Datei createTable.txt:

      CREATE TABLE IF NOT EXISTS cor_rki(
         IdBundesland    INTEGER  NOT NULL
        ,Bundesland      VARCHAR(44) NOT NULL
        ,Landkreis       VARCHAR(44) NOT NULL
        ,Altersgruppe    VARCHAR(9) NOT NULL
        ,Geschlecht      VARCHAR(9) NOT NULL
        ,AnzahlFall      INTEGER  NOT NULL
        ,AnzahlTodesfall INTEGER  NOT NULL
        ,ObjectId        INTEGER  NOT NULL PRIMARY KEY
        ,Meldedatum      VARCHAR(24) NOT NULL
        ,IdLandkreis     VARCHAR(5) NOT NULL
        ,Datenstand      VARCHAR(22) NOT NULL
        ,NeuerFall       INTEGER  NOT NULL
        ,NeuerTodesfall  INTEGER  NOT NULL
      ) DEFAULT CHARACTER SET = UTF8;
      
      ALTER TABLE `cor_rki`
        ADD KEY `Meldedatum` (`Meldedatum`),
        ADD KEY `IdLandkreis` (`IdLandkreis`),
        ADD KEY `Datenstand` (`Datenstand`);
      COMMIT;
      
      CREATE TABLE IF NOT EXISTS cor_landkreise(
         OBJECTID             INTEGER  NOT NULL PRIMARY KEY
        ,ADE                  INTEGER
        ,GF                   INTEGER
        ,BSG                  BIT
        ,RS                   VARCHAR(5) NOT NULL
        ,AGS                  VARCHAR(5)
        ,SDV_RS               VARCHAR(11)
        ,GEN                  VARCHAR(44) NOT NULL
        ,BEZ                  VARCHAR(44) NOT NULL
        ,IBZ                  INTEGER
        ,BEM                  VARCHAR(13)
        ,NBD                  VARCHAR(4)
        ,SN_L                 INTEGER
        ,SN_R                 INTEGER
        ,SN_K                 INTEGER
        ,SN_V1                INTEGER
        ,SN_V2                INTEGER
        ,SN_G                 INTEGER
        ,FK_S3                VARCHAR(1)
        ,NUTS                 VARCHAR(5)
        ,RS_0                 INTEGER
        ,AGS_0                INTEGER
        ,WSK                  VARCHAR(23)
        ,EWZ                  INTEGER  NOT NULL
        ,KFL                  NUMERIC(7,2)
        ,DEBKG_ID             VARCHAR(16)
        ,Shape_Area           NUMERIC(17,7) NOT NULL
        ,Shape_Length         NUMERIC(17,10) NOT NULL
        ,death_rate           NUMERIC(17,15) NOT NULL
        ,cases                INTEGER  NOT NULL
        ,deaths               INTEGER  NOT NULL
        ,cases_per_100k       NUMERIC(17,14) NOT NULL
        ,cases_per_population NUMERIC(19,17) NOT NULL
        ,BL                   VARCHAR(22) NOT NULL
        ,BL_ID                INTEGER  NOT NULL
        ,county               VARCHAR(36) NOT NULL
        ,last_update          VARCHAR(16) NOT NULL
      ) DEFAULT CHARACTER SET = UTF8;
      
      ALTER TABLE `cor_landkreise`
        ADD KEY `RS` (`RS`);
      COMMIT;
      
      CREATE TABLE IF NOT EXISTS cor_bundesland(
         ID               INTEGER  NOT NULL PRIMARY KEY
        ,LAN_ew_AGS       INTEGER  NOT NULL
        ,LAN_ew_GEN       VARCHAR(44) NOT NULL
        ,LAN_ew_BEZ       VARCHAR(44) NOT NULL
        ,LAN_ew_EWZ       INTEGER  NOT NULL
        ,OBJECTID         INTEGER  NOT NULL
        ,Fallzahl         INTEGER  NOT NULL
        ,Aktualisierung   VARCHAR(24) NOT NULL
        ,AGS_TXT          INTEGER  NOT NULL
        ,GlobalID         VARCHAR(36) NOT NULL
        ,faelle_100000_EW NUMERIC(16,13) NOT NULL
        ,Shape_Area       NUMERIC(17,5) NOT NULL
        ,Shape_Length     NUMERIC(16,9) NOT NULL
        ,Death            INTEGER  NOT NULL
      ) DEFAULT CHARACTER SET = UTF8;
      
      truncate cor_rki;
      truncate cor_bundesland;
      truncate cor_landkreise;
      

      Anschließend kann man noch Kreis-Informationen zusteuern:
      kreise.sql

      Um das alles am Ende komfortabel Handeln zu können sollte man einen view erstellen mit:

      SELECT 
      r.IDBundesLand as ID_B, r.IDLandkreis as ID_L,SUBSTRING(r.MeldeDatum,1,10) as R_MeldeDatum, r.ObjectID as ID_R,
      r.Bundesland as R_Bundesland, r.Landkreis as R_Landkreis, r.Altersgruppe as R_Alter, r.Geschlecht as R_Geschl, r.AnzahlFall as R_Fall, r.AnzahlTodesfall as R_Tote, r.Datenstand as R_Datenstand, r.NeuerFall as R_Neuerfall, r.NeuerTodesFall as NeuerTodesFall,
      b.LAN_ew_EWZ as B_Einwohner,b.FallZahl as B_Fallzahl,b.Death as B_Tote,
      l.EWZ as L_Einwohner,l.KFL as L_Flaeche, l.death_rate as L_TodesRate, l.cases as L_Faelle, l.deaths as L_Tote, l.cases_per_100k as L_Faelle_pro_100000,l.cases_per_population as L_Faelle_pro_Bevoelkerung,
      k.skreis as K_SKreis, k.bevoelkerung as K_Bevoelkerung, k.maenner as K_Maenner,k.frauen as K_Frauen, k.dichte as K_Dichte
      FROM 
      cor_rki r,cor_bundesland b,cor_landkreise l, kreise k
      where r.IdLandkreis=l.RS and r.IdBundesland=b.id and r.IdLandkreis=k.id
      and r.AnzahlFall>0
      order by ID_B,ID_L,R_MeldeDatum
      

      Hier werden dann auch die nicht zu berücksichtigenden Zeilen ignoriert.
      Dann kommt man auf die gleichen Werte wie die RKI-Seiten

      Dann geht z.B.:

      SELECT sum(R_Fall) as fall, sum(R_Tote) as Tote, R_Landkreis FROM `cor_view` where R_Fall>0 group by ID_L order by fall DESC
      

      Ergibt dann:

      2653
      4
      SK München
      2311
      14
      SK Hamburg
      1264
      35
      LK Heinsberg
      1246
      9
      SK Köln
      837
      5
      Region Hannover
      836
      14
      StadtRegion Aachen
      832
      18
      LK Esslingen
      791
      13
      LK Rosenheim
      784
      7
      SK Stuttgart
      701
      7
      LK Ludwigsburg
      676
      5
      LK Tübingen
      633
      6
      LK München
      592
      4
      LK Rhein-Neckar-Kreis
      534
      2
      LK Rhein-Sieg-Kreis
      505
      7
      LK Freising
      501
      27
      LK Tirschenreuth
      460
      2
      SK Münster
      459
      4
      LK Borken
      454
      9
      LK Hohenlohekreis
      451
      0
      SK Berlin Mitte
      442
      12
      SK Freiburg i.Breisgau
      438
      4
      SK Frankfurt am Main
      432
      10
      LK Böblingen
      427
      8
      LK Heilbronn
      422
      8
      LK Breisgau-Hochschwarzwald
      
      

      Die vorliegenden Daten sind jetzt so aufbereitet, dass man auch Zeitreihen analysieren kann und man auf geografische Gegebenheiten eingehen kann.

      Viel Erfolg bei der Analyse

      posted in JavaScript
      sissiwup
      sissiwup
    • RE: Wasserzähler - Selfmade

      Hallo,

      habe das Projekt gestern auch umgesetzt. Hat alles wunderbar auf anhieb funktioniert.
      Ich habe als einziges im ESP32-Code noch eine feste IP vergeben. Das mache ich bei allen IOT-Geräten, damit ich, falls ich mal den Router wechsele nicht von vorne Anfangen muss.

      Als Abfrage habe ich das Java-Skript verwendet.

      Hier noch ein Tipp für grafana:

      SELECT
      floor(n.ts/1000) as time_sec,
      convert(n.val,DECIMAL(10,4)) as value,
      "Wasser" as metric
      FROM ts_string n
      WHERE $__unixEpochFrom()*1000<n.ts and $__unixEpochTo()*1000>n.ts and n.id = 2372 and n.id
      ORDER BY n.ts ASC
      

      Die ID ist natürlich anzupassen. (Ich speichere in mysql)

      Hier mein Docker-Aufruf:

      docker run -d --restart unless-stopped -p 3300:3000 --mount type=bind,source=/var/docker/wasser,target=/config --mount type=bind,source=/var/docker/log,target=/log jomjol/wasserzaehler:latest
      

      Hier habe ich den Port von 3000 auf 3300 umgesetzt (3000 nutzt grafana).
      Mit -d läuft es als Service und mit --restart unless-stopped wird es auch nach Rechner Neustart wieder gestartet.

      Also vielen Dank an euch für die super Arbeit.

      posted in Hardware
      sissiwup
      sissiwup
    • Update npm und node.js

      MOD-EDIT: (17.10.2022)
      Dieser Thread ist veraltet! Eine solche Vorgehensweise führt heute zu krummen Installationen


      Hallo,

      so einfach kann man npm und node auf den aktuellen Stand halten

      sudo npm cache clean -f
      sudo npm update npm -g
      sudo npm install -g n
      sudo n stable
      
      
      npm -v
      node -v
      
      
      root@raspberrypi:/opt# npm -v
      3.4.0
      root@raspberrypi:/opt# node -v
      v5.0.0
      
      posted in ioBroker Allgemein
      sissiwup
      sissiwup
    • RE: Test Adapter Admin 5.0.x: Alpha der neuen UI

      @apollon77 sagte in Test Adapter Admin 5.0.x: Alpha der neuen UI:

      Aktuelle Test Version 5.0.x
      Veröffentlichungsdatum 17.04.2020
      Github Link Latest Repository

      Hi,

      Wer die neue Oberfläche testen möchte, öffnet die Einstellungen seiner Admin-Instanz und aktiviert die Einstellung "Use react UI(experts)". Dann Speichern und Admin wird neu gestartet. Dann im Browser mit "Shift-Reload" die Admin-Seite neu laden und die neue Oberfläche erscheint.

      Falls irgendein Fehler existiert und Admin gar nicht mehr angezeigt wird (und man keine zweite Instanz genutzt hat) kann über folgenden Kommandozeilen-Befehl die neue Oberfläche wieder deaktiviert werden: iobroker set admin.0 --react false

      Hallo,
      mit 5.1.2 hat sich bei mir die neue Admin-Oberfläche aktiviert.

      Bitte bitte möglichst lange die klassische Oberfläche behalten.
      Es muss nicht alles wie aus dem Kindergarten aussehen und
      möglichst bunt und verspielt sein.
      Dein Post hat mich gerettet. Danke 🙂

      PS: Was noch schrecklicher als die Adapter-Ansicht war ist der Bereich LOG. Bunter geht kaum.

      posted in Tester
      sissiwup
      sissiwup
    • RE: Corona-Daten nach MySQL importieren

      Hallo,

      wenn man anstelle eines View eine Tabelle verwenden möchte (ist etwas schneller), dann hilft folgendes:

      (Update 4.4. Delete Zahlen<0)

      createZiel.txt

      DROP TABLE IF EXISTS cor_view;
      
      CREATE TABLE cor_view AS
      SELECT
      r.IDBundesLand as ID_B, r.IDLandkreis as ID_L,SUBSTRING(r.MeldeDatum,1,10) as R_MeldeDatum, r.ObjectID as ID_R,
      r.Bundesland as R_Bundesland, r.Landkreis as R_Landkreis, r.Altersgruppe as R_Alter, r.Geschlecht as R_Geschl, r.AnzahlFall as R_Fall, r.AnzahlTodesfall as R_Tote, r.Datenstand as
       R_Datenstand, r.NeuerFall as R_Neuerfall, r.NeuerTodesFall as NeuerTodesFall,
      b.LAN_ew_EWZ as B_Einwohner,b.FallZahl as B_Fallzahl,b.Death as B_Tote,
      l.EWZ as L_Einwohner,l.KFL as L_Flaeche, l.death_rate as L_TodesRate, l.cases as L_Faelle, l.deaths as L_Tote, l.cases_per_100k as L_Faelle_pro_100000,l.cases_per_population as L_
      Faelle_pro_Bevoelkerung,
      k.skreis as K_SKreis, k.bevoelkerung as K_Bevoelkerung, k.maenner as K_Maenner,k.frauen as K_Frauen, k.dichte as K_Dichte
      FROM
      cor_rki r,cor_bundesland b,cor_landkreise l, kreise k
      where r.IdLandkreis=l.RS and r.IdBundesland=b.id and r.IdLandkreis=k.id
      and r.AnzahlFall>0
      order by ID_B,ID_L,R_MeldeDatum;
      
      update cor_view set R_Tote=0 where R_Tote<0;
      
      ALTER TABLE `cor_view`
        ADD UNIQUE KEY `PRIME` (`ID_B`,`ID_L`,`R_MeldeDatum`,`ID_R`) USING BTREE,
        ADD KEY `I1` (`R_MeldeDatum`,`R_Bundesland`,`R_Fall`,`R_Tote`),
        ADD KEY `I2` (`R_MeldeDatum`,`R_Landkreis`,`R_Fall`,`R_Tote`),
        ADD KEY `I3` (`R_MeldeDatum`,`K_SKreis`,`R_Fall`,`R_Tote`);
      COMMIT;
      

      Das Batch Skript sieht dann so aus:

      #!/bin/bash
      NOW=`date +"%d.%m.%g %H:%M.%S"`
      NOWDAT=`date +"%d_%m_%g"`
      USER=DBUSER
      PASS=DBPASSWORD
      
      rm /var/skripte/data/*.csv
      wget -O /var/skripte/data/cor_rki.csv https://opendata.arcgis.com/datasets/dd4580c810204019a7b8eb3e0b329dd6_0.csv
      wget -O /var/skripte/data/cor_landkreise.csv https://opendata.arcgis.com/datasets/917fc37a709542548cc3be077a786c17_0.csv
      wget -O /var/skripte/data/cor_bundesland.csv https://opendata.arcgis.com/datasets/ef4b445a53c1406892257fe63129a8ea_0.csv
      
      cp /var/skripte/data/cor_rki.csv /var/skripte/data/rki_$NOWDAT.csv.backup
      cp /var/skripte/data/cor_landkreise.csv /var/skripte/data/landkreise_$NOWDAT.csv.backup
      cp /var/skripte/data/cor_bundesland.csv /var/skripte/data/bundesland_$NOWDAT.csv.backup
      
      #mysql -u $USER -p$PASS iobroker < /var/skripte/data/createTable.txt
      
      mysqlimport --fields-terminated-by=, --ignore-lines=1 --verbose --delete --local -u $USER -p$PASS iobroker /var/skripte/data/cor_rki.csv
      mysqlimport --fields-terminated-by=, --ignore-lines=1 --verbose --delete --local -u $USER -p$PASS iobroker /var/skripte/data/cor_landkreise.csv
      mysqlimport --fields-terminated-by=, --ignore-lines=1 --verbose --delete --local -u $USER -p$PASS iobroker /var/skripte/data/cor_bundesland.csv
      
      mysql -u $USER -p$PASS iobroker < /var/skripte/data/createZiel.txt
      
      posted in JavaScript
      sissiwup
      sissiwup

    Latest posts made by sissiwup

    • RE: Admin-Adapter Chrome geht nicht mehr. Firefox läuft.

      @alexhaxe sagte in Admin-Adapter Chrome geht nicht mehr. Firefox läuft.:

      @sissiwup Dein Chrome läuft nicht zufällig auf MacOS? Falls ja, schau mal hier: https://forum.iobroker.net/topic/77977/gelöst-chrome-auf-mac-öffnet-keine-lokalen-webseiten

      Hallo,

      ja, ist Chrome auf Mac. Lief aber bis zum Update von admin ohne Probleme.

      posted in Error/Bug
      sissiwup
      sissiwup
    • RE: Admin-Adapter Chrome geht nicht mehr. Firefox läuft.

      @thomas-braun sagte in Admin-Adapter Chrome geht nicht mehr. Firefox läuft.:

      @sissiwup sagte in Admin-Adapter Chrome geht nicht mehr. Firefox läuft.:

      This system needs to be REBOOTED!

      Und die Ausgabe von iob diag ist nicht vollständig.
      Was ist das überhaupt für ein seltsames System, mit den ganzen snaps da?

      Hallo,

      die Ausgabe habe ich am Ende abgeschnitten, da das Forum sie sonst als zu lang angesehen hat.
      Ist ein kleiner linux-Server mit allerhand docker etc.

      posted in Error/Bug
      sissiwup
      sissiwup
    • RE: Admin-Adapter Chrome geht nicht mehr. Firefox läuft.

      @thomas-braun sagte in Admin-Adapter Chrome geht nicht mehr. Firefox läuft.:

      @sissiwup sagte in Admin-Adapter Chrome geht nicht mehr. Firefox läuft.:

      This system needs to be REBOOTED!

      Hallo,
      ja, aber das ist nur der neue Kernel der bei den Updates mitgekommen ist.
      Da dran lag es nicht. Ich habe bei Chrome den Cache gelöscht,
      jetzt geht es wieder.

      Aber Danke für den schnellen Service ...

      posted in Error/Bug
      sissiwup
      sissiwup
    • Admin-Adapter Chrome geht nicht mehr. Firefox läuft.
      • Adaptername: admin
      • Adapterversion: 7.6.17
      • js-controller Version: 7.0.6
      • Admin Version: 7.6.17
      • Hardwaresystem: Intel
      • Arbeitsspeicher: 16GB
      • Festplattenart: SSD
      • Betriebssystem: Debian
      • Nodejs-Version: v20.19.0
      • NPM-Version: 10.8.2
      • Installationsart: Skript ?
      • Image, Docker genutzt: Nein

      Linux User bitte hier den Output von iob diag einfügen.

      aktueller Stand mit sudo apt update etc habe ich gemacht
      iobroker fix ist auch durch (ohne Fehler)
      iobroker stop
      dann iob diag:

      Script v.2025-03-08
      
      *** BASE SYSTEM ***
       Static hostname: zotac
             Icon name: computer-desktop
               Chassis: desktop 🖥️
      Operating System: Debian GNU/Linux 12 (bookworm)
                Kernel: Linux 6.1.0-33-amd64
          Architecture: x86-64
       Hardware Vendor: ASRock
        Hardware Model: H81M-DGS
      Firmware Version: P2.00
      OS is similar to: 
      
      model name	: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz
      Docker          : false
      Virtualization  : none
      Kernel          : x86_64
      Userland        : 64 bit
      
      Systemuptime and Load:
       19:21:13 up 44 days, 14:15,  2 users,  load average: 5.66, 4.95, 4.07
      CPU threads: 8
      
      
      *** LIFE CYCLE STATUS ***
      Operating System is the current Debian stable version codenamed 'bookworm'!
      
      This system needs to be REBOOTED!
      
      
      *** TIME AND TIMEZONES ***
                     Local time: Thu 2025-05-29 19:21:14 CEST
                 Universal time: Thu 2025-05-29 17:21:14 UTC
                       RTC time: Thu 2025-05-29 17:21:14
                      Time zone: Europe/Berlin (CEST, +0200)
      System clock synchronized: yes
                    NTP service: n/a
                RTC in local TZ: no
      
      *** Users and Groups ***
      User that called 'iob diag':
      wh
      JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre/
      HOME=/home/wh
      GROUPS=wh cdrom floppy sudo audio dip www-data video plugdev users netdev lpadmin scanner iobroker
      
      User that is running 'js-controller':
      js-controller is not running
      
      *** DISPLAY-SERVER SETUP ***
      Display-Server: false
      Desktop: 	
      Terminal: 	tty
      
      *** MEMORY ***
                     total        used        free      shared  buff/cache   available
      Mem:             16G        8.6G        370M        125M        7.9G        7.8G
      Swap:            34G        4.4G         30G
      Total:           50G         12G         30G
      
      Active iob-Instances: 	1
      
              15669 M total memory
               8192 M used memory
               3182 M active memory
               9583 M inactive memory
                353 M free memory
                 91 M buffer memory
               7485 M swap cache
              32767 M total swap
               4156 M used swap
              28611 M free swap
      
      *** top - Table Of Processes  ***
      top - 19:21:14 up 44 days, 14:15,  2 users,  load average: 5.66, 4.95, 4.07
      Tasks: 613 total,   1 running, 612 sleeping,   0 stopped,   0 zombie
      %Cpu(s):  7.1 us, 14.3 sy,  0.0 ni, 42.9 id, 35.7 wa,  0.0 hi,  0.0 si,  0.0 st 
      MiB Mem :  15669.8 total,    343.6 free,   8205.5 used,   7581.1 buff/cache     
      MiB Swap:  32768.0 total,  28611.1 free,   4156.9 used.   7464.3 avail Mem 
      
      *** FAILED SERVICES ***
      
        UNIT             LOAD   ACTIVE SUB    DESCRIPTION
      * iobroker.service loaded failed failed ioBroker Server
      * minidlna.service loaded failed failed MiniDLNA lightweight DLNA/UPnP-AV server
      * named.service    loaded failed failed BIND Domain Name Server
      
      LOAD   = Reflects whether the unit definition was properly loaded.
      ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
      SUB    = The low-level unit activation state, values depend on unit type.
      3 loaded units listed.
      
      
      *** DMESG CRITICAL ERRORS ***
      No critical errors detected
      
      *** FILESYSTEM ***
      Filesystem                             Type      Size  Used Avail Use% Mounted on
      udev                                   devtmpfs  7.7G     0  7.7G   0% /dev
      tmpfs                                  tmpfs     1.6G  7.2M  1.6G   1% /run
      /dev/sda1                              ext4      917G  279G  600G  32% /
      tmpfs                                  tmpfs     7.7G  1.2M  7.7G   1% /dev/shm
      tmpfs                                  tmpfs     5.0M   16K  5.0M   1% /run/lock
      /dev/loop3                             squashfs  105M  105M     0 100% /snap/core/17200
      /dev/loop4                             squashfs   56M   56M     0 100% /snap/core18/2846
      /dev/loop5                             squashfs   56M   56M     0 100% /snap/core18/2855
      /dev/loop9                             squashfs   74M   74M     0 100% /snap/core22/1908
      /dev/loop12                            squashfs  128K  128K     0 100% /snap/hello-world/29
      /dev/loop13                            squashfs   10M   10M     0 100% /snap/nmap/3582
      /dev/loop14                            squashfs   10M   10M     0 100% /snap/nmap/3885
      /dev/loop1                             squashfs   56M   56M     0 100% /snap/certbot/4557
      /dev/loop0                             squashfs   56M   56M     0 100% /snap/certbot/4482
      /dev/sdb5                              ext4      234G  141G   82G  64% /mnt/data
      /dev/sdd1                              ext4      7.3T  5.9T  1.1T  85% /mnt/mybac
      /dev/sdc1                              ext4      3.6T  2.3T  1.2T  68% /mnt/media
      /dev/loop6                             squashfs   67M   67M     0 100% /snap/core24/888
      /dev/loop10                            squashfs   74M   74M     0 100% /snap/core22/1963
      /dev/loop8                             squashfs   64M   64M     0 100% /snap/core20/2571
      /dev/loop7                             squashfs  105M  105M     0 100% /snap/core/17210
      /dev/loop2                             squashfs   67M   67M     0 100% /snap/core24/988
      /dev/loop11                            squashfs   64M   64M     0 100% /snap/core20/2582
      tmpfs                                  tmpfs     1.6G   36K  1.6G   1% /run/user/0
      //192.168.1.91/myshare/backup/backitup cifs       14T  547G   14T   4% /opt/iobroker/backups
      
      Messages concerning ext4 filesystem in dmesg:
      
      Show mounted filesystems:
      TARGET                  SOURCE                                 FSTYPE   OPTIONS
      /                       /dev/sda1                              ext4     rw,relatime,errors=remount-ro
      |-/snap/core/17200      /dev/loop3                             squashfs ro,nodev,relatime,errors=continue
      |-/snap/core18/2846     /dev/loop4                             squashfs ro,nodev,relatime,errors=continue
      |-/snap/core18/2855     /dev/loop5                             squashfs ro,nodev,relatime,errors=continue
      |-/snap/core22/1908     /dev/loop9                             squashfs ro,nodev,relatime,errors=continue
      |-/snap/hello-world/29  /dev/loop12                            squashfs ro,nodev,relatime,errors=continue
      |-/snap/nmap/3582       /dev/loop13                            squashfs ro,nodev,relatime,errors=continue
      |-/snap/nmap/3885       /dev/loop14                            squashfs ro,nodev,relatime,errors=continue
      |-/snap/certbot/4557    /dev/loop1                             squashfs ro,nodev,relatime,errors=continue
      |-/snap/certbot/4482    /dev/loop0                             squashfs ro,nodev,relatime,errors=continue
      |-/mnt/data             /dev/sdb5                              ext4     rw,relatime,errors=remount-ro
      |-/var/ftp              /dev/sdb5[/ftp]                        ext4     rw,relatime,errors=remount-ro
      |-/mnt/mybac            /dev/sdd1                              ext4     rw,relatime,errors=remount-ro
      |-/mnt/media            /dev/sdc1                              ext4     rw,relatime,errors=remount-ro
      |-/snap/core20/2582     /dev/loop11                            squashfs ro,nodev,relatime,errors=continue
      |-/snap/core/17210      /dev/loop7                             squashfs ro,nodev,relatime,errors=continue
      |-/snap/core24/888      /dev/loop6                             squashfs ro,nodev,relatime,errors=continue
      |-/snap/core24/988      /dev/loop2                             squashfs ro,nodev,relatime,errors=continue
      |-/snap/core20/2571     /dev/loop8                             squashfs ro,nodev,relatime,errors=continue
      |-/snap/core22/1963     /dev/loop10                            squashfs ro,nodev,relatime,errors=continue
      `-/opt/iobroker/backups //192.168.1.91/myshare/backup/backitup cifs     rw,relatime,vers=2.0,cache=strict,username=wh,uid=1008,forceuid,gid=1009,forcegid,addr=192.168.1.91,file_mode=0777,dir_mode=0777,soft,nounix,serverino,mapposix,rsize=65536,wsize=65536,bsize=1048576,echo_interval=60,actimeo=1,closetimeo=1
      
      Files in neuralgic directories:
      
      /var:
      202G	/var/
      92G	/var/lib
      71G	/var/lib/influxdb/data/unifi/autogen
      71G	/var/lib/influxdb/data/unifi
      71G	/var/lib/influxdb/data
      
      Hint: You are currently not seeing messages from other users and the system.
            Users in groups 'adm', 'systemd-journal' can see all messages.
            Pass -q to turn off this notice.
      Archived and active journals take up 8.0M in the file system.
      
      /opt/iobroker/backups:
      111G	/opt/iobroker/backups/
      
      /opt/iobroker/iobroker-data:
      1.1G	/opt/iobroker/iobroker-data/
      878M	/opt/iobroker/iobroker-data/files
      617M	/opt/iobroker/iobroker-data/files/javascript.admin
      560M	/opt/iobroker/iobroker-data/files/javascript.admin/static
      558M	/opt/iobroker/iobroker-data/files/javascript.admin/static/js
      
      The five largest files in iobroker-data are:
      25M	/opt/iobroker/iobroker-data/objects.jsonl
      24M	/opt/iobroker/iobroker-data/files/scenes.admin/static/js/main.c9369f6c.js.map
      8.7M	/opt/iobroker/iobroker-data/files/javascript.admin/static/js/838.0aa41cb0.chunk.js.map
      8.6M	/opt/iobroker/iobroker-data/files/javascript.admin/static/js/310.89a60ae1.chunk.js.map
      8.4M	/opt/iobroker/iobroker-data/files/scenes.admin/static/js/main.c9369f6c.js
      
      USB-Devices by-id:
      USB-Sticks -  Avoid direct links to /dev/tty* in your adapter setups, please always prefer the links 'by-id':
      
      No Devices found 'by-id'
      
      *** ZigBee Settings ***
      Zigbee Network Settings on your coordinator/in nvbackup are:
      
      zigbee.X
      Extended Pan ID:
      *** MASKED ***
      Pan ID:
      *** MASKED ***
      Channel:
      *** MASKED ***
      Network Key:
      *** MASKED ***
      
      To unmask the settings run 'iob diag --unmask'
      
      
      *** NodeJS-Installation ***
      
      /usr/bin/nodejs 	v20.19.2
      /usr/bin/node 		v20.19.2
      /usr/bin/npm 		10.8.2
      /usr/bin/npx 		10.8.2
      /usr/bin/corepack 	0.31.0
      
      nodejs:
        Installed: 20.19.2-1nodesource1
        Candidate: 20.19.2-1nodesource1
        Version table:
       *** 20.19.2-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
              100 /var/lib/dpkg/status
           20.19.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.19.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.18.3-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.18.2-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.18.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.18.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.17.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.16.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.15.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.15.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.14.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.13.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.13.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.12.2-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.12.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.12.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.11.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.11.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.10.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.9.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.8.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.8.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.7.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.6.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.6.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.5.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.5.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.4.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.3.1-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.3.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.2.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.1.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           20.0.0-1nodesource1 1001
              500 https://deb.nodesource.com/node_20.x nodistro/main amd64 Packages
           18.19.0+dfsg-6~deb12u2 500
              500 http://deb.debian.org/debian bookworm/main amd64 Packages
           18.19.0+dfsg-6~deb12u1 500
              500 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages
      
      Temp directories causing deletion problem: 0
      No problems detected
      
      Errors in npm tree: 0
      No problems detected
      
      *** ioBroker-Installation ***
      
      ioBroker Status
      iobroker is not running on this host.
      
      
      Objects type: jsonl
      States  type: jsonl
      
      Hosts:
      zotac               zotac (version: 7.0.6, hostname: zotac         , alive, uptime: 31)
      
      Core adapters versions
      js-controller: 	7.0.6
      admin: 		7.6.17
      javascript: 	8.8.3
      
      nodejs modules from github: 	0
      
      Adapter State
        system.adapter.admin.0                  : admin                 : zotac                                    -  enabled, port: 8081, bind: 0.0.0.0, run as: admin
        system.adapter.backitup.0               : backitup              : zotac                                    -  enabled
        system.adapter.broadlink2.0             : broadlink2            : zotac                                    -  enabled
        system.adapter.dwd.0                    : dwd                   : zotac                                    -  enabled
        system.adapter.fritzbox.0               : fritzbox              : zotac                                    -  enabled
        system.adapter.hm-rega.0                : hm-rega               : zotac                                    -  enabled
        system.adapter.hm-rpc.0                 : hm-rpc                : zotac                                    -  enabled, port: 0
        system.adapter.hm-rpc.1                 : hm-rpc                : zotac                                    -  enabled, port: 0
        system.adapter.hm-rpc.2                 : hm-rpc                : zotac                                    -  enabled, port: 0
        system.adapter.hm-rpc.3                 : hm-rpc                : zotac                                    -  enabled, port: 0
        system.adapter.ical.0                   : ical                  : zotac                                    -  enabled
        system.adapter.icons-addictive-flavour-png.0: icons-addictive-flavour-png: zotac                                    - disabled
        system.adapter.icons-fatcow-hosting.0   : icons-fatcow-hosting  : zotac                                    - disabled
        system.adapter.icons-icons8.0           : icons-icons8          : zotac                                    - disabled
        system.adapter.icons-material-png.0     : icons-material-png    : zotac                                    - disabled
        system.adapter.icons-material-svg.0     : icons-material-svg    : zotac                                    - disabled
        system.adapter.icons-mfd-png.0          : icons-mfd-png         : zotac                                    - disabled
        system.adapter.icons-mfd-svg.0          : icons-mfd-svg         : zotac                                    - disabled
        system.adapter.icons-ultimate-png.0     : icons-ultimate-png    : zotac                                    - disabled
        system.adapter.javascript.0             : javascript            : zotac                                    -  enabled
        system.adapter.mqtt.0                   : mqtt                  : zotac                                    -  enabled, port: 1883, bind: 0.0.0.0
        system.adapter.node-red.0               : node-red              : zotac                                    -  enabled, port: 1880, bind: 192.168.1.13
        system.adapter.pvforecast.0             : pvforecast            : zotac                                    -  enabled
        system.adapter.scenes.0                 : scenes                : zotac                                    -  enabled
        system.adapter.simple-api.0             : simple-api            : zotac                                    -  enabled, port: 8087, bind: 0.0.0.0, run as: admin
        system.adapter.sonoff.0                 : sonoff                : zotac                                    -  enabled, port: 2883, bind: 0.0.0.0
        system.adapter.sql.0                    : sql                   : zotac                                    -  enabled
        system.adapter.telegram.0               : telegram              : zotac                                    -  enabled, port: 8443, bind: 0.0.0.0
        system.adapter.trashschedule.0          : trashschedule         : zotac                                    -  enabled
        system.adapter.vis-bars.0               : vis-bars              : zotac                                    - disabled
        system.adapter.vis-canvas-gauges.0      : vis-canvas-gauges     : zotac                                    - disabled
        system.adapter.vis-colorpicker.0        : vis-colorpicker       : zotac                                    - disabled
        system.adapter.vis-fancyswitch.0        : vis-fancyswitch       : zotac                                    - disabled
        system.adapter.vis-history.0            : vis-history           : zotac                                    - disabled
        system.adapter.vis-hqwidgets.0          : vis-hqwidgets         : zotac                                    - disabled
        system.adapter.vis-icontwo.0            : vis-icontwo           : zotac                                    - disabled
        system.adapter.vis-jqui-mfd.0           : vis-jqui-mfd          : zotac                                    - disabled
        system.adapter.vis-justgage.0           : vis-justgage          : zotac                                    - disabled
        system.adapter.vis-lcars.0              : vis-lcars             : zotac                                    - disabled
        system.adapter.vis-map.0                : vis-map               : zotac                                    - disabled
        system.adapter.vis-material-advanced.0  : vis-material-advanced : zotac                                    - disabled
        system.adapter.vis-material-webfont.0   : vis-material-webfont  : zotac                                    - disabled
        system.adapter.vis-material.0           : vis-material          : zotac                                    - disabled
        system.adapter.vis-materialdesign.0     : vis-materialdesign    : zotac                                    - disabled
        system.adapter.vis-metro.0              : vis-metro             : zotac                                    - disabled
        system.adapter.vis-plumb.0              : vis-plumb             : zotac                                    - disabled
        system.adapter.vis-rgraph.0             : vis-rgraph            : zotac                                    - disabled
        system.adapter.vis-timeandweather.0     : vis-timeandweather    : zotac                                    - disabled
        system.adapter.vis-weather.0            : vis-weather           : zotac                                    - disabled
        system.adapter.vis.0                    : vis                   : zotac                                    -  enabled
        system.adapter.web.0                    : web                   : zotac                                    -  enabled, port: 8082, bind: 0.0.0.0, run as: admin
        system.adapter.zigbee2mqtt.0            : zigbee2mqtt           : zotac                                    -  enabled
      
      + instance is alive
      
      Enabled adapters with bindings
        system.adapter.admin.0                  : admin                 : zotac                                    -  enabled, port: 8081, bind: 0.0.0.0, run as: admin
        system.adapter.hm-rpc.0                 : hm-rpc                : zotac                                    -  enabled, port: 0
        system.adapter.hm-rpc.1                 : hm-rpc                : zotac                                    -  enabled, port: 0
        system.adapter.hm-rpc.2                 : hm-rpc                : zotac                                    -  enabled, port: 0
        system.adapter.hm-rpc.3                 : hm-rpc                : zotac                                    -  enabled, port: 0
        system.adapter.mqtt.0                   : mqtt                  : zotac                                    -  enabled, port: 1883, bind: 0.0.0.0
        system.adapter.node-red.0               : node-red              : zotac                                    -  enabled, port: 1880, bind: 192.168.1.13
        system.adapter.simple-api.0             : simple-api            : zotac                                    -  enabled, port: 8087, bind: 0.0.0.0, run as: admin
        system.adapter.sonoff.0                 : sonoff                : zotac                                    -  enabled, port: 2883, bind: 0.0.0.0
        system.adapter.telegram.0               : telegram              : zotac                                    -  enabled, port: 8443, bind: 0.0.0.0
        system.adapter.web.0                    : web                   : zotac                                    -  enabled, port: 8082, bind: 0.0.0.0, run as: admin
      
      ioBroker-Repositories
      ┌─────────┬───────────────┬─────────────────────────────────────────────────────────┬──────────────┐
      │ (index) │ name          │ url                                                     │ auto upgrade │
      ├─────────┼───────────────┼─────────────────────────────────────────────────────────┼──────────────┤
      │ 0       │ 'live-stable' │ 'http://iobroker.live/repo/sources-dist.json'           │ false        │
      │ 1       │ 'live-beta'   │ 'http://iobroker.live/repo/sources-dist-latest.json'    │ false        │
      │ 2       │ 'stable'      │ 'http://download.iobroker.net/sources-dist.json'        │ false        │
      │ 3       │ 'beta'        │ 'http://download.iobroker.net/sources-dist-latest.json' │ false        │
      └─────────┴───────────────┴─────────────────────────────────────────────────────────┴──────────────┘
      
      Active repo(s): live-stable
      Upgrade policy: none
      
      Installed ioBroker-Adapters
      Used repository: live-stable
      Adapter    "admin"        : 7.6.17   , installed 7.6.17
      Adapter    "backitup"     : 3.2.2    , installed 3.2.2
      Adapter    "broadlink2"   : 2.3.0    , installed 2.3.0
      Adapter    "dwd"          : 2.8.5    , installed 2.8.5
      Adapter    "fritzbox"     : 0.6.0    , installed 0.6.0
      Adapter    "hm-rega"      : 5.1.0    , installed 5.1.0
      Adapter    "hm-rpc"       : 2.0.2    , installed 2.0.2
      Adapter    "ical"         : 1.16.1   , installed 1.16.1
      Adapter    "icons-addictive-flavour-png": 0.1.0, installed 0.1.0
      Adapter    "icons-fatcow-hosting": 0.1.0, installed 0.1.0
      Adapter    "icons-icons8" : 0.0.1    , installed 0.0.1
      Adapter    "icons-material-png": 0.1.0, installed 0.1.0
      Adapter    "icons-material-svg": 0.1.0, installed 0.1.0
      Adapter    "icons-mfd-png": 1.2.1    , installed 1.2.1
      Adapter    "icons-mfd-svg": 1.2.0    , installed 1.2.0
      Adapter    "icons-ultimate-png": 1.0.1, installed 1.0.1
      Adapter    "javascript"   : 8.8.3    , installed 8.8.3
      Controller "js-controller": 7.0.6    , installed 7.0.6
      Adapter    "mqtt"         : 6.1.2    , installed 6.1.2
      Adapter    "node-red"     : 5.2.1    , installed 5.2.1
      Adapter    "pvforecast"   : 4.1.0    , installed 4.1.0
      Adapter    "scenes"       : 3.2.3    , installed 3.2.3
      Adapter    "simple-api"   : 2.8.0    , installed 2.8.0
      Adapter    "socketio"     : 6.7.1    , installed 6.7.1
      Adapter    "solarviewdatareader": 1.2.1, installed 1.2.1
      Adapter    "sonoff"       : 3.1.2    , installed 3.1.2
      Adapter    "sql"          : 3.0.1    , installed 3.0.1
      Adapter    "telegram"     : 4.1.0    , installed 4.1.0
      Adapter    "trashschedule": 3.3.0    , installed 3.3.0
      Adapter    "vis"          : 1.5.6    , installed 1.5.6
      Adapter    "vis-bars"     : 0.1.4    , installed 0.1.4
      Adapter    "vis-canvas-gauges": 1.0.1, installed 1.0.1
      Adapter    "vis-colorpicker": 2.0.3  , installed 2.0.3
      Adapter    "vis-fancyswitch": 1.1.0  , installed 1.1.0
      Adapter    "vis-history"  : 1.0.0    , installed 1.0.0
      Adapter    "vis-hqwidgets": 1.5.1    , installed 1.5.1
      Adapter    "vis-icontwo"  : 1.11.0   , installed 1.11.0
      Adapter    "vis-inventwo" : 3.3.5    , installed 3.3.5
      Adapter    "vis-jqui-mfd" : 1.1.1    , installed 1.1.1
      Adapter    "vis-justgage" : 2.1.7    , installed 2.1.7
      Adapter    "vis-lcars"    : 1.1.1    , installed 1.1.1
      Adapter    "vis-map"      : 1.1.2    , installed 1.1.2
      Adapter    "vis-material" : 0.2.0    , installed 0.2.0
      Adapter    "vis-material-advanced": 1.7.4, installed 1.7.4
      Adapter    "vis-materialdesign": 0.5.9, installed 0.5.9
      Adapter    "vis-metro"    : 1.2.0    , installed 1.2.0
      Adapter    "vis-plumb"    : 1.0.2    , installed 1.0.2
      Adapter    "vis-rgraph"   : 0.0.2    , installed 0.0.2
      Adapter    "vis-timeandweather": 1.2.2, installed 1.2.2
      Adapter    "vis-weather"  : 2.5.11   , installed 2.5.11
      Adapter    "web"          : 7.0.8    , installed 7.0.8
      Adapter    "ws"           : 2.6.2    , installed 2.6.2
      Adapter    "zigbee2mqtt"  : 3.0.3    , installed 3.0.3
      
      Objects and States
      Please stand by - This may take a while
      Objects: 	14022
      States: 	11542
      
      
      
      
      posted in Error/Bug
      sissiwup
      sissiwup
    • OT-Therm Werte in Datenpunkte / Open Therm / JSON

      Hallo,

      ich habe ein kleines Skript geschrieben, was Werte aus dem openTherm MQTT in Datenpunkte überführt.
      (https://www.seegel-systeme.de) - Diesen nutze ich ...
      Es wird als Status nur ein JSON geliefert.

      Das Skript kann eigentlich beliebige JSON in Datenpunkte überführen(inkl. Unterstrukturen/Arrays):

      Einmal muss die instanz - Variable angepasst werden. (Ich habe hier historisch immer noch javascript und nicht user stehen ...)

      Und natürlich der Datenpunkt auf das es hört (2. Zeile). Und in der Funktion countAll der state, der Gelesen werden soll.

      Die Werte werden nur geschrieben, wenn sie sich ändern (um die Datenbank zu entlatsen :-))
      Ein paar Werte, die zu oft kommen, werden rausgefiltert.

      Viel Spaß damit und gerne Verbesserungsvorschläge ...

      var instanz = 'javascript.0.ottherm.';
      on('mqtt.0.otthing.31F3A0.state',function(dp) {
          countAll();
      });
      
      function flattenJSON(obj, prefix = '') {
          let result = {};
          for (let key in obj) {
              if (obj.hasOwnProperty(key)) {
                  let newKey = prefix ? `${prefix}.${key}` : key;
                  if (typeof obj[key] === 'object' && obj[key] !== null) {
                      Object.assign(result, flattenJSON(obj[key], newKey));
                  } else {
                      result[newKey] = { value: obj[key], art: typeof obj[key] };
                  }
              }
          }
          return result;
      }
      
      function setKeyValuePairs(json) {
          const flattened = flattenJSON(json);
          for (const [key, { value, art }] of Object.entries(flattened)) {
              if (!key.includes("txCount") && !key.includes("rxCount") && !key.includes("runtime") && !key.includes("freeHeap") && !key.includes("rssi")) {
                  createState(instanz+key, 0, { name: key , desc: key , type: art });
      //          log(String(key+"->"+getState(instanz+key).val)+"?"+value)
                  if (String(getState(instanz+key).val)!=String(value)) {
      //                console.log(`${key} -> ${value} (Type: ${art})`);
                      if (art=="number") setState(instanz+key,Number(value));
                      if (art=="boolean") setState(instanz+key,Boolean(value));
                      if (art=="string") setState(instanz+key,String(value));
                  }
              }
          }
      }
      
      function countAll() {
        let ottherm = JSON.parse(getState('mqtt.0.otthing.31F3A0.state').val);
        // log(JSON.stringify(ottherm));
        setKeyValuePairs(ottherm);
      }
      
      schedule("*/15 * * * *", function () {
          countAll();
      });
      
      countAll();
      
      posted in Skripten / Logik
      sissiwup
      sissiwup
    • Aktuelles Repository ist "live-stable"

      WARNUNG: Aktuelles Repository ist "live-stable". Benutzung auf eigene Gefahr!

      Hallo,

      habe nach den Text im Forum gesucht, aber nix gefunden.
      Wofür ist das live-stable ?
      Nutze ich meine ich schon "immer"
      Wie kann ich auf die "normale" stable wechseln?
      (Wo ich das Eintragen muss ist mir klar)

      posted in Einsteigerfragen
      sissiwup
      sissiwup
    • RE: Host-Adapter Anzeige für Betriebssystemupdates

      @samson71
      Hi,

      ja, diese Funktion hat hier aber nix zu suchen oder sollte zumindest abschaltbar sein.

      posted in Einsteigerfragen
      sissiwup
      sissiwup
    • RE: Host-Adapter Anzeige für Betriebssystemupdates

      @thomas-braun
      Hi,

      das ist keine Antwort auf die Frage. Ich mache die Updates der Linux-Systeme immer am Wochenende.
      Ich möchte nur wichtige Infos bekommen und nicht Meldungen zu Sachen, die ioBroker nix angehen.

      Stellt euch mal vor auf euren iPhone würde jede App ein kleines Badge bekommen, wo drinn steht, mach doch bitte
      das Update aufs neue IOS. Genau das mach hier der ioBroker.

      Mit freundlichen Grüßen

      Sissiwup

      posted in Einsteigerfragen
      sissiwup
      sissiwup
    • Host-Adapter Anzeige für Betriebssystemupdates

      Hallo,

      wo kann ich die nervige Anzeige für die Betriebssystemupdates deaktivieren?
      Ich meine diese kleine Badge am Host-Adapter, die anzeigt, dass es Updates für das
      zugrundeliegende Betriebssystem gibt.

      Habe keine Einstellung dazu gefunden.

      Mit freundlichen Grüßen

      Sissiwup

      posted in Einsteigerfragen
      sissiwup
      sissiwup
    • RE: fritzbox Adapter hat seit 5.3.

      @haselchen sagte in fritzbox Adapter hat seit 5.3.:

      @homoran

      „etc.“ ist nicht unbedingt ne genaue Fehlerangabe.

      Hallo,

      es werden keine Werte mehr aktualisiert.

      Der Adapter ist grün. An der Fritzbox wurde nichts geändert.

      posted in Error/Bug
      sissiwup
      sissiwup
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo