Navigation

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

    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

    • Profile
    • Following 0
    • Followers 0
    • Topics 95
    • Posts 533
    • Best 6
    • Groups 2

    etv

    @etv

    7
    Reputation
    128
    Profile views
    533
    Posts
    0
    Followers
    0
    Following
    Joined Last Online
    Website etv-bewegtbild-manufaktur.at Location Austria / Styria Age 57

    etv Follow
    Pro Starter

    Best posts made by etv

    • RE: [Vorlage] Betriebsstundenzähler & Verbrauchsrechner

      Servus @looxer01 ,

      ich hab dein Programm mit diversen weiteren Log Ausgaben erweitert und bin so draufgekommen, warum bei mir so mancher Zähler nicht auf Null gestellt wird!

      Es ist mir bei diversen Aktoren immer wieder vorgekommen, dass am nächsten Tag weitergezählt wird und die Nullung nicht erfolgreich ist. Bei weiteren Recherchen bin ich draufgekommen, dass es nur Shelly Aktoren betrifft und es immer Aktoren sind, von Geräten, die eben zu Mitternacht auf jeden Fall EIN sind.

      Das Problem war, dass immer wieder die Nullung und der Update des Aktors zusammen gefallen sind und so der Update die Nullung "überschrieben" hat!

      Lange Rede kurzer Sinn - ein Ändern der Schedule der Nullung im Sekundenbereich (in meinem Fall 7 Sekunden nach der vollen Minute) hat das Problem "erschlagen"!

      Also zur Info - wenn jemand das selbe Problem hat - einfach in der Zeile mit
      var cronjob =
      und dahinter
      TimeSetMinute + " " + TimeSetStunde +" * * *"; // Cron Schedule setzen

      die Sekunden einfügen - bei mir sieht die Zeile nun so aus:

      var cronjob = "7 " + TimeSetMinute + " " + TimeSetStunde +" * * *";  // Cron Schedule setzen
      

      ...ist bei mir auf Zeile 200 - das ist aber natürlich bei jedem anders, weil ja davor die Anzahl der zu überwachenden Aktoren bei jedem verschieden ist.

      Liebe Grüße
      Tom

      posted in Skripten / Logik
      etv
      etv
    • RE: Fully Adapter läd keine Seiten mit # im URL...

      @arteck so ist / war es!

      Ich hab gerade die Lösung gefunden!! Ich hab den Hashtag durch seinen Code %23 ersetzt und nun geht es....

      ...anscheinend wird der # irgendwo im Code "gesäubert" 😆

      Nun ist der String http://192.168.68.22:8082/vis/index.html?Tab3_2017%23carport_cam_1 und so funktioniert es!

      Liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv
    • RE: [gelöst] VIS via Cloud - info.html not found

      Ich hab nun nach langem Suchen im Code den Fehler gefunden!!

      VIS geht davon aus, dass der Info-Adapter existiert...

      In der Zeile 434 von der Datei /opt/iobroker/node_modules/iobroker.vis/www/js/vis.js wird dieser Fehler ausgelöst. Warum da der Info Adapter gesucht wird, weiß ich nicht....

      Info-Adapter installiert und es geht wieder....

      Liebe Grüße
      Tom
      PS: just 4 Info für dich, falls das mal wieder wer haben sollte @Homoran

      posted in Cloud Dienste
      etv
      etv
    • RE: XML Daten (TV Programm) in ioBroker

      @pix:

      Ich nutze für Skripte, die Daten aus dem Internet laden immer die Javascript Instanz javascript.1 , damit mir nicht die gesamte Javascript Steuerung abstürzt, wenn sich zB die Quellwebseite ändert und die Daten nicht mehr korrekt eingelesen werden können. Es gibt eine Trennung zwischen der wichtigen Haussteuerung und der unwichtigen Komfortfunktionen (TV Programm, Bus&Bahn, etc.). `
      ..eine geniale Idee! Gerade bei mir umgesetzt 😉

      Grüße

      etv

      posted in Skripten / Logik
      etv
      etv
    • RE: Ondilo ICO Adapter bekommt keinen API Zugriff

      @garfonso
      Das Ticket bei denen hab ich eröffnet, da ich im Netz und im Forum nix von einem Problem, noch von funktionierenden Systemen sein etwa August letzten Jahres gefunden hab.
      Daher mal die Anfrage bei denen, ob sie das vielleicht abgedreht haben...

      In der alten Version des Adapters, bzw auf meinem alten ioBroker ist es ja vorletztes Jahr gelaufen - das System gibt's nicht mehr, daher kann ich nicht sagen, welche Versionen das damals 2023 waren.
      Nun am neuen System hab ich die letzte Version vom Adapter installiert und die verbindet sich eben nicht, bzw. holt sich nicht den Key oder was auch immer am Anfang da so gesucht/geholt wird.

      Erst dachte ich, dass meine Logindaten falsch sind, hab dann auf deren Page einen neuen Account angelegt um dann irgendwo zu lesen, dass Webseite und Geräte Account nix miteinander zu tun haben...
      ...dann mutig geworden und mich vom Gerät abgemeldet und neu angemeldet um die Logindaten zu checken...und...ja die sind korrekt.

      Liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv
    • RE: Ondilo ICO Adapter bekommt keinen API Zugriff

      @garfonso
      alles klar - herzlichen Dank!!!
      Ich bin heute Nachmittag jurz daheim (um Wäsche zu wechseln) und probier es dann aus!
      Sopport Ticket bei denen mach ich gleich zu...

      Liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv

    Latest posts made by etv

    • RE: Ondilo ICO Adapter bekommt keinen API Zugriff

      @garfonso
      Servus,
      hat nun funktioniert!
      Herzlichen Dank und liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv
    • RE: Ondilo ICO Adapter bekommt keinen API Zugriff

      @garfonso
      alles klar - herzlichen Dank!!!
      Ich bin heute Nachmittag jurz daheim (um Wäsche zu wechseln) und probier es dann aus!
      Sopport Ticket bei denen mach ich gleich zu...

      Liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv
    • RE: Ondilo ICO Adapter bekommt keinen API Zugriff

      @garfonso
      Das Ticket bei denen hab ich eröffnet, da ich im Netz und im Forum nix von einem Problem, noch von funktionierenden Systemen sein etwa August letzten Jahres gefunden hab.
      Daher mal die Anfrage bei denen, ob sie das vielleicht abgedreht haben...

      In der alten Version des Adapters, bzw auf meinem alten ioBroker ist es ja vorletztes Jahr gelaufen - das System gibt's nicht mehr, daher kann ich nicht sagen, welche Versionen das damals 2023 waren.
      Nun am neuen System hab ich die letzte Version vom Adapter installiert und die verbindet sich eben nicht, bzw. holt sich nicht den Key oder was auch immer am Anfang da so gesucht/geholt wird.

      Erst dachte ich, dass meine Logindaten falsch sind, hab dann auf deren Page einen neuen Account angelegt um dann irgendwo zu lesen, dass Webseite und Geräte Account nix miteinander zu tun haben...
      ...dann mutig geworden und mich vom Gerät abgemeldet und neu angemeldet um die Logindaten zu checken...und...ja die sind korrekt.

      Liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv
    • RE: Ondilo ICO Adapter bekommt keinen API Zugriff

      @mcm1957
      Danke für deine Bemühungen, aber ich wollte einfach nur wissen, ob bei den anderen der Apdater läuft, sonst nix. Ich hab aktuell keine Zeit für eine umfassende Diagnose, daher kann ich auch nix liefern, zumal ich nun wieder ca. 3 Wochen nicht zu Hause bin...

      Liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv
    • RE: Ondilo ICO Adapter bekommt keinen API Zugriff

      @mcm1957
      ...alles am letzten Stand und im Log genau NIX...

      Bei der ersten Einrichtung des neu installierten Adapters kommt diese Meldung und sonst gibt es da keine Einträge.

      Liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv
    • RE: Ondilo ICO Adapter bekommt keinen API Zugriff

      @mcu
      alles klar, danke - ich habe gehofft, dass das aufgrund des Alters des Threads vielleicht schon erledigt ist...

      Auf jeden Fall hab ich bei Ondilo mal ein Ticket aufgemacht - wird wahrscheinlich nix bringen, aber die Hoffnung stirbt zuletzt.

      Liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv
    • Ondilo ICO Adapter bekommt keinen API Zugriff

      Liebe Leute,
      iwir haben heute unser Pool wieder ausgewintert und den ICO rein gehängt. Auf meiner neuen ioBroker Installation den Adapter installiert und...
      ...leider nix.

      Ich kann mich nicht mehr mit meinen Logindaten anmelden. In der App geht alles (auch logout und wieder login, also Daten sind korrekt), aber der Adapter meldet mir "Meldung
      Konnte nicht einloggen: TypeError: Failed to fetch".

      Hat wer eine Idee?

      Liebe Grüße
      Tom

      posted in ioBroker Allgemein
      etv
      etv
    • VIS-2, gestyled Zeiteingabe Farben ändern?

      Liebe Leute,
      ich beginne mich gerade mit VIS-2 zu beschäftigen und für unsere Wecker wäre das Widget "gestyled Zeiteingabe" perfekt...
      ...aber ich kann da die Farben des Symbols und der Schrift nicht ändern? Egal was ich in CSS Font & Text des Widgets eintrage, die Farbe bleibt dunkelgrau - bei einem schwarzen Hintergrund des Bildschirms etwas unpraktisch.
      Auch das "Popup" mit den Stunden und Minuten Einträgen kann man irgendwie nicht ändern...
      Gibt es da einen Hack oder muss ich mi was anderes überlegen?

      Liebe Grüße
      Tom

      posted in Visualisierung
      etv
      etv
    • RE: [gelöst] on Funktion u.Daten Array nimmt immer letzten Wert

      Ich hab es!!
      Hab nun in meinen alten Backups ein Script gefunden, welches ich vor Jahren für das automatische EIN/AUS diverse Geräte in Abhängigkeit von Anwesenheit und Helligkeit draußen geschrieben hab (oder von irgendwo hier im Forum zusammen gebastelt...) und in diesem Script mache ich es "richtig rum"...

      Anbei nun das gesamte Script falls es noch wer "studieren" möchte.

      // Kleinverbraucher Logging - V1.0 - 07.10.2024
      // Kopie vom ersten Scrit dieser Art, IONIQ5 Logging...
      // Teil der neuen Logging Scripte - klein, leicht und auf meine Bedürfnisse zugeschnitten
      // 2do:::::::::::::::::::::::::::::::::::::::::
      // createState in der History automatisieren...
      
      var debug = true;
      var root = '0_userdata.0.Logging.Kleinverbraucher.';
      var was, neuer_Wert, alter_Wert, diff, helper, tag, monat, jahr, wochentag;
      // WAS soll geloggt werden?
      const datenpunkt={
          'ScooterCharger':{
              id_wert : 'shelly.1.SHPLG-S#C38D1F#1.Relay0.Energy'/*Energy*/
          },
          'editPC':{
              id_wert : 'shelly.1.SHPLG-S#B529B7#1.Relay0.Energy'/*Energy*/
          }
      };
      
      // Init
      fn_init();
      // Funktion initialize für die Subscribes
      function fn_init() {for (was in datenpunkt) {fn_on_Schleifen(was)}};
      
      // Hauptteil
      function fn_on_Schleifen(was){
          on({id: datenpunkt[was].id_wert, change:'ne'}, function (obj) {
              // abfangen von Änderungen kurz nach Mitternacht - da erfolgen ja die ganzen Transfers
              if (compareTime("00:00", "00:01", "between")){
                  if (debug){log('========== Update ausgelöst von '+ was +' aber es ist Mitternacht, daher Abbruch')}
                  return;
              }
              if (debug){log('========== Update ausgelöst von '+ was +'...')}
              neuer_Wert = obj.state.val;
              alter_Wert = getState(root+was+'.internal_counter').val;
              if (debug){log('========== alter Wert: '+ alter_Wert)}
              if (debug){log('========== neuer Wert: '+ neuer_Wert)}
              diff = neuer_Wert - alter_Wert;
              // ist diff gleuch Null, dann Abbruch...
              if (diff === 0) {
                  if (debug){log('========== Objekt Update ohne Änderung ... exit!')}
                  return;
              }
              // wenn diff negativ ist, dann hat ein reset des Counter stattgefunden
              // ist es positiv, wird der Wert dazu gezählt
              if (diff < 0) {
                  if (debug){log('========== RESET erkannt - Differenz ist negativ: '+ diff)}
                  // check auf neuer Wert = 0, dann wird 0,00000001 addiert um den INIT abzufangen
                  if (neuer_Wert === 0){neuer_Wert = 0.0000000001}
                  setState(root+was+'.internal_counter', neuer_Wert, true);
              } else {
                   // check auf alter Wert genau 0 - dann wird dieser Wert gerade zum ersten Mal gelesen....
                  if (alter_Wert === 0){
                      if (debug){log('========== INIT erkannt - alter Wert genau 0, daher wurde noch nie ein Wert gelesen/geschrieben.')}
                      // nun wird ohne Addition der neue Wert im Counter gespeichert
                      setState(root+was+'.internal_counter', neuer_Wert, true);
                      return; // und Abbruch, weil wir sind fertig...denke ich...
                  }
                  if (debug){log('========== Differenz '+ diff +' wird addiert...')}
                  helper = getState(root+was+'.1-DAY').val;
                  setState(root+was+'.1-DAY', (helper + diff), true);
                  helper = getState(root+was+'.2-WEEK').val;
                  setState(root+was+'.2-WEEK', (helper + diff), true);
                  helper = getState(root+was+'.3-MONTH').val;
                  setState(root+was+'.3-MONTH', (helper + diff), true);
                  helper = getState(root+was+'.4-YEAR').val;
                  setState(root+was+'.4-YEAR', (helper + diff), true);
                  setState(root+was+'.internal_counter', neuer_Wert, true);
              }
          }); // Ende on
      }; // Ende Hauptteil
      
      // Tages-/Wochen-/Monats-/Jahreswechsel
      // läuft jeden Tag um Punkt 00:00:01
      clearSchedule(sh_Tageswechel);
      var sh_Tageswechel = schedule('1 0 0 * * *', fn_Tageswechsel);
      
      //fn_Tageswechsel();
      function fn_Tageswechsel(){
          // erst mal das neue Datum holen UND zwar in eizelnen Variablen
          tag = formatDate(new Date(), 'TT');
          monat = formatDate(new Date(), 'MM');
          jahr = parseInt(formatDate(new Date(), 'YYYY'));
          wochentag = formatDate(new Date(), 'W');
          // Start der Schleife für ALLE Datenpunkte in dieser Kategorie
          for (was in datenpunkt) {
              log('Schleife START');
              // nun check auf die ganzen Wechsel, wobei Jahr vor Monat vor Tag
              // Check auf JAHRESWECHSEL
              if ((monat == '01') && (tag == '01')){
                  jahr = jahr - 1;
                  log('========== JAHRESWECHSEL erkannt: '+datenpunkt[was].id_wert +' ==========');
                  // 1. Jahresverbrauch in HISTORY schreiben
                  setState(root+was+'.HISTORY.'+ jahr, getState(root+was+'.4-YEAR').val, true);
                  // 2. Jahresverbrauch in .BEFORE schreiben
                  setState(root+was+'.4-YEAR.BEFORE', getState(root+was+'.4-YEAR').val, true);
                  setState(root+was+'.4-YEAR', 0, true);   
              } // Ende Jahreswechsel
              // Check auf MONATSWECHSEL
              if (tag == '01'){
                  // if (monat == '01'){jahr = jahr - 1}
                  helper = parseInt(monat);
                  helper = helper - 1; // wir brauchen ja den Vormonat
                  if (helper === 0){helper = 12}
                  if (helper < 10) {monat = '0' + helper.toFixed(0)}
                  else {monat = helper.toFixed(0)}
                  log('========== MONATSWECHSEL erkannt: '+datenpunkt[was].id_wert +' ==========');
                  // 1. Monatsverbrauch in HISTORY schreiben
                  setState(root+was+'.HISTORY.'+ jahr +'.' + monat, getState(root+was+'.3-MONTH').val, true);
                  // 2. Monatsverbrauch in .BEFORE schreiben
                  setState(root+was+'.3-MONTH.BEFORE', getState(root+was+'.3-MONTH').val, true);
                  setState(root+was+'.3-MONTH', 0, true);
              } // Ende Monatswechsel
              // Check auf Wochenwechsel
              if (wochentag == 'Mo'){
                  log('========== WOCHENWECHSEL erkannt: '+datenpunkt[was].id_wert +' ==========');
                  // 1. Wochenverbrauch in .BEFORE schreiben
                  setState(root+was+'.2-WEEK.BEFORE', getState(root+was+'.2-WEEK').val, true);
                  setState(root+was+'.2-WEEK', 0, true);            
              } // Ende Wochenwechsel
              // Tageswechsel - der kommt - no na - IMMER dran...
              setState(root+was+'.1-DAY.BEFORE', getState(root+was+'.1-DAY').val, true);
              setState(root+was+'.1-DAY', 0, true);
          } // Ende for-Schleife
      } // Ende Tages-/Wochen-/Monats-/Jahreswechsel
      // ENDE Script
      
      

      Im Prinzip das Ersatz Script für den guten alten Betriebsstundenzähler von @looxer01 .
      Ich hab das Programm geliebt und bis heute in Betrieb, aber es macht mir Sorge, dass immer mehr Fehler im Prorammcode angezeigt werden (rote Wellenlinien) und es irgendwann nicht mehr geht. Viele der Funktionen hab ich in seinem Script nie verwendet - eigentlich hauptsächlich das aufsummieren von Verbräuchen - und so hab ich mir nun das eigene kleine und schlanke Script geschrieben, bevor das alte "absemmelt" 😎

      Liebe Grüße
      Tom

      PS: @Ro75 : für deine Methode hab ich schon einen Anwendungsfall! Danke für diese Idee...

      posted in JavaScript
      etv
      etv
    • RE: [gelöst] on Funktion u.Daten Array nimmt immer letzten Wert

      @ro75 ...aja, auch eine sehr gute Idee!

      posted in JavaScript
      etv
      etv
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo