Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] javascript Hilfe gesucht - Fehler "State undefined not found"

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.0k

[gelöst] javascript Hilfe gesucht - Fehler "State undefined not found"

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 2 Kommentatoren 1.1k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • etvE Offline
    etvE Offline
    etv
    schrieb am zuletzt editiert von
    #1

    Liebe Leute,

    leider hab ich es einfach noch immer nicht kappiert ;)

    Folgender Code ergibt bei mir im Log den Fehler "javascript-0 2016-08-09 20:21:44.173 warn State "undefined" not found"

    //
    // USV-Warnungen via Pushbullet - V 1.0 - 09.08.2016
    //
    
    // Variablen angelgen
    var status_usv_office = "nut.0.ups.status"/*ups.status*/;
    var status_usv_wohn_1 = "nut.1.ups.status"/*ups.status*/;
    var charge_usv_office = "nut.0.battery.charge"/*battery.charge*/;
    var charge_usv_wohn_1 = "nut.1.battery.charge"/*battery.charge*/;
    var r_time_usv_office = "nut.0.battery.runtime"/*battery.runtime*/;
    var r_time_usv_wohn_1 = "nut.1.battery.runtime"/*battery.runtime*/;
    
    // Reaktion auf Statusänderungen
    on ({id: status_usv_office, val: "OB DISCHRG"}), function() {
        var betreff = "Stromausfall!";
        var charge = charge_usv_office;
        var r_time = (r_time_usv_office/60).toFixed(0);
        var location = "Büro";
        send_message(betreff,location,charge,r_time);
    };
    
    // Send Pushbullet Message
    function send_message(subjekt,raum,ladung,restzeit){
        var jetzt = new Date();
            var Stunde = jetzt.getHours();
        var Minute = jetzt.getMinutes();
        if (Minute <= 9) {
            Minute = "0" + Minute;
            }
    
        sendTo("pushbullet",{
            message: "Die USV im " + raum + " ist um " + Stunde + ":" + Minute +" Uhr angesprungen. Die aktuelle Ladung beträgt" + ladung + "% und die Restlaufzeit beträgt " + restzeit + " Minuten.",
            title: subjekt,
            type: "note",
            receiver: "Thomas.Exel@gmail.com"
        })
        }
    
    

    Hat wer eine Idee, warum das so ist?

    Grüße

    Tom

    …ist schon sehr lange begeisterter ioBroker Nutzer! 1x zu Hause und 1x auf der Alm. ioBroker ist das 'Hirn' des Smarthome und steuert HomeMatic und Shellys, loggt was so passiert, zeigt es auf Tabletts schön an und ermöglicht mir via Cloud Adapter den Fernzugriff...

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hallo etv,

      ich habe jetzt nicht den ganzen Code durchgesehen, aber:

      // Variablen angelgen
      var status_usv_office = "nut.0.ups.status"/*ups.status*/; // das ist praktisch nur ein string mit dem inhalt "nut.0.ups.status"
      var status_usv_wohn_1 = "nut.1.ups.status"/*ups.status*/;
      var charge_usv_office = "nut.0.battery.charge"/*battery.charge*/;
      var charge_usv_wohn_1 = "nut.1.battery.charge"/*battery.charge*/;
      var r_time_usv_office = "nut.0.battery.runtime"/*battery.runtime*/;
      var r_time_usv_wohn_1 = "nut.1.battery.runtime"/*battery.runtime*/;
      
      // Reaktion auf Statusänderungen
      on ({id: status_usv_office, val: "OB DISCHRG"}), function() {
          var betreff = "Stromausfall!";
          var charge = getState(charge_usv_office).val; // hier fehlte das getState()
          var r_time = (getState(r_time_usv_office).val/60).toFixed(0); // hier auch
          var location = "Büro";
          send_message(betreff,location,charge,r_time);
      };
      
      

      Es ist hier im Forum weit verbreitet, Variablen, die den String eines Objektes enthalten mit dem Prefix "id" zu benennen. Dadurch hat man mehr Übersicht und weiß schneller, welche Variablen tatsächlich Werte enthalten oder nur den Namen eines Objektes. Letztere müssen dann mit getState("Name des Objektes").val abgefragt werden. Man kann auch den Lastchange oder Timestamp so abfragen getState("Name des Objektes").lc bzw. getState("Name des Objektes").ts

      // NUR ZU VERANSCHAULICHUNG
      var idStatus_usv_wohn_1 = "nut.1.ups.status"/*ups.status*/;
      
      on ({ id: idStatus_usv_wohn_1, // hier dann das id sogar im Code
              val: "OB DISCHRG"
      }), function(dp) {
          var status = getState(idStatus_usv_wohn_1).val;
          // oder hier in dieser Subscription natürlich besser
          var status2 = dp.state.val; // dp für datapoint oder datenpunkt.
      });
      

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • etvE Offline
        etvE Offline
        etv
        schrieb am zuletzt editiert von
        #3

        Servus pix,

        danke für die Hilfe - werd' ich am Nachmittag ausbessern!

        Liebe Grüße

        Tom

        …ist schon sehr lange begeisterter ioBroker Nutzer! 1x zu Hause und 1x auf der Alm. ioBroker ist das 'Hirn' des Smarthome und steuert HomeMatic und Shellys, loggt was so passiert, zeigt es auf Tabletts schön an und ermöglicht mir via Cloud Adapter den Fernzugriff...

        1 Antwort Letzte Antwort
        0
        • etvE Offline
          etvE Offline
          etv
          schrieb am zuletzt editiert von
          #4

          Liebe Leute,

          sodala - Fehler gefunden - es war eine falsche Klammer beim "on"-Befehl - da war eine zuviel ;)

          hab dann noch die Tipps von pix benutzt und alles ein wenig optimiert (glaub ich zumindest :D )

          anbei das Script - ev. eine Idee für Kollegen hier im Forum.

          Schöne Grüße

          Tom

          ! //
          ! // USV-Warnungen via Pushbullet - V 1.1 - 10.08.2016
          ! //
          ! // Variablen angelgen
          ! var id_status_usv_office = "nut.0.ups.status";
          ! var id_status_usv_wohn_1 = "nut.1.ups.status";
          ! var id_charge_usv_office = "nut.0.battery.charge";
          ! var id_charge_usv_wohn_1 = "nut.1.battery.charge";
          ! var id_r_time_usv_office = "nut.0.battery.runtime";
          ! var id_r_time_usv_wohn_1 = "nut.1.battery.runtime";
          ! // Reaktion auf Statusänderungen
          ! // Büro
          ! // Stromausfall
          ! on ({id: id_status_usv_office, val: "OB DISCHRG", oldValNe: "OB DISCHRG"}, function() {
          ! var ladung_s = getState(id_charge_usv_office).val;
          ! var restzeit_s = ((getState(id_r_time_usv_office).val)/60).toFixed(0);
          ! send_message("Stromausfall!","angesprungen.",ladung_s,restzeit_s,"Büro");
          ! });
          ! // tiefer Ladestand
          ! on ({id: id_r_time_usv_office, valLe: 600}, function() {
          ! var ladung_s = getState(id_charge_usv_office).val;
          ! var restzeit_s = ((getState(id_r_time_usv_office).val)/60).toFixed(0);
          ! send_message("Ladung kritisch!","noch immer vom Netz getrennt und hat einen kritischen Ladezustand erreicht.",ladung_s,restzeit_s,"Büro");
          ! });
          ! // Strom wieder retour
          ! on ({id: id_status_usv_office, val: "OL", oldValNe: "OL"}, function() {
          ! var ladung_s = getState(id_charge_usv_office).val;
          ! var restzeit_s = ((getState(id_r_time_usv_office).val)/60).toFixed(0);
          ! send_message("Strom wieder OK!","wieder ans Netz gegangen.",ladung_s,restzeit_s,"Büro");
          ! });
          ! // Wohnzimmer
          ! // Stromausfall
          ! on ({id: id_status_usv_wohn_1, val: "OB DISCHRG", oldValNe: "OB DISCHRG"}, function() {
          ! var ladung_s = getState(id_charge_usv_wohn_1).val;
          ! var restzeit_s = ((getState(id_r_time_usv_wohn_1).val)/60).toFixed(0);
          ! send_message("Stromausfall!","angesprungen.",ladung_s,restzeit_s,"Wohnzimmer");
          ! });
          ! // tiefer Ladestand
          ! on ({id: id_r_time_usv_wohn_1, valLe: 600}, function() {
          ! var ladung_s = getState(id_charge_usv_wohn_1).val;
          ! var restzeit_s = ((getState(id_r_time_usv_wohn_1).val)/60).toFixed(0);
          ! send_message("Ladung kritisch!","noch immer vom Netz getrennt und hat einen kritischen Ladezustand erreicht.",ladung_s,restzeit_s,"Wohnzimmer");
          ! });
          ! // Strom wieder retour
          ! on ({id: id_status_usv_wohn_1, val: "OL", oldValNe: "OL"}, function() {
          ! var ladung_s = getState(id_charge_usv_wohn_1).val;
          ! var restzeit_s = ((getState(id_r_time_usv_wohn_1).val)/60).toFixed(0);
          ! send_message("Strom wieder OK!","wieder ans Netz gegangen.",ladung_s,restzeit_s,"Wohnzimmer");
          ! });
          ! // Send Pushbullet Message
          ! function send_message(betreff_r,text_r,ladung_r,restzeit_r,raum_r){
          ! var jetzt = new Date();
          ! var Stunde = (jetzt.getHours()).toString();
          ! var Minute = (jetzt.getMinutes()).toString();
          ! if (Minute <= 9) {
          ! Minute = "0" + Minute;
          ! }
          ! sendTo("pushbullet",{
          ! message: "Die USV im " + raum_r + " ist kurz vor " + Stunde + ":" + Minute +" Uhr " + text_r + " Die aktuelle Ladunge beträgt " + ladung_r + "% und die Restlaufzeit beträgt " + restzeit_r + " Minuten.",
          ! title: betreff_r,
          ! type: "note",
          ! receiver: "Thomas.Exel@gmail.com"
          ! })
          ! }

          …ist schon sehr lange begeisterter ioBroker Nutzer! 1x zu Hause und 1x auf der Alm. ioBroker ist das 'Hirn' des Smarthome und steuert HomeMatic und Shellys, loggt was so passiert, zeigt es auf Tabletts schön an und ermöglicht mir via Cloud Adapter den Fernzugriff...

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          774

          Online

          32.4k

          Benutzer

          81.5k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe