Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Profile
    • Following 1
    • Followers 0
    • Topics 3
    • Posts 54
    • Best 2
    • Groups 0

    SirDirk

    @SirDirk

    2
    Reputation
    17
    Profile views
    54
    Posts
    0
    Followers
    1
    Following
    Joined Last Online

    SirDirk Follow

    Best posts made by SirDirk

    • RE: Google Home/Assistant ioBroker einrichten/nutzen

      Schaltet man das folgende Gerät an/aus antwortet der Google Assistant mit langem Text "Klar, ich schalte die Lampe Vitrine Tinte aus".
      Seit kurzem erfolgt bei der Licht-Schaltung aber eigentlich nur noch ein Quittungston.
      Bei ioBroker-Schaltungen kommt aber immer der lange Text (wie früher).
      Kann man das Verhalten beeinflussen, so dass nur ein Quittungston kommt? Das wäre klasse, die Google-Antworten sind total nervig.

      a9dff332-0cf6-4281-b6bd-e9bff68d0464-grafik.png

      {
      "_id": "DUMMY.0.Vitrine.Vitrine_Tinte",
      "type": "state",
      "common": {
      "name": "Vitrine Tinte",
      "role": "switch",
      "type": "boolean",
      "read": true,
      "write": true,
      "desc": "Manuell erzeugt",
      "def": false,
      "smartName": {
      "de": "Vitrine Tinte",
      "ghTraits": [
      "action.devices.traits.OnOff"
      ],
      "ghType": "action.devices.types.LIGHT",
      "ghAttributes": "{\n "commandOnlyOnOff": false\n }"
      }
      },
      "native": {},
      "from": "system.adapter.iot.0",
      "user": "system.user.admin",
      "ts": 1564850303000,
      "acl": {
      "object": 1636,
      "state": 1636,
      "owner": "system.user.admin",
      "ownerGroup": "system.group.administrator"
      }
      }

      Man könnte das natürlich über die Funktion "Abläufe" in der Google-Home-App stummschalten. Man müsste das dann aber für jeden erdenklichen Befehl machen und das ist furchtbar umständlich.

      posted in ioBroker Allgemein
      SirDirk
      SirDirk
    • RE: Google Home/Assistant ioBroker einrichten/nutzen

      @tombox sagte in Google Home/Assistant ioBroker einrichten/nutzen:

      und haben es auch mit Bluestack Emulator getestet und bei der aktualisierung (Runterziehen im Hauptbildschirm) hat das immer geklappt.

      Ich habe testweise Bluestack installiert. Das geht auch nicht. Die Geräte werden nicht synchronisiert.
      Ich habe jetzt aber eine praktikable Lösung gefunden:
      Ich habe mich daran erinnert, dass man HUE-Lampen per Sprachbefehl synchronisieren kann.

      Also habe ich den Sprachbefehl

      OK Google - synchronisiere meine Lampen
      

      abgesetzt - und siehe da - es kommt prompt Antwort:

      Na klar - es werden vier Provider synchronisiert.
      

      Bei mir sind das

      0e4c64cb-1030-4705-b611-68aac75cc702-grafik.png

      Und siehe da: ioBroker wurde auch korrekt synchronisiert.

      Hurra! Danke an alle, die meinen Kopf dazu gebracht haben, das zu versuchen !!! 🙂

      posted in ioBroker Allgemein
      SirDirk
      SirDirk

    Latest posts made by SirDirk

    • RE: Test Adapter TP-Link Tapo

      Ich habe diverse Tapo-Kameras und würde gerne in IOBroker auf Ereignisse (Bewegung, Haustier, Person) reagieren. Leider finde ich unter den ID's keinen State, der bei Ereignissen aktualisiert wird. Was übersehe ich? Ich habe die 0.28 des Adapters installiert.

      posted in Tester
      SirDirk
      SirDirk
    • RE: Probleme mit Huemagic

      @frankyboy73 @mickym
      Herzlichen Dank für eure Hinweise. ich wäre nie darauf gekommen, node-red-Hinweise im ioBroker-Log zu suchen. Das kann in Zukunft sicherlich hilfreich sein, da ich vorhabe, demnächst tiefer in node-red einzusteigen.
      Die Debug-Nodes nutze ich bereits intensiv zur Analyse von Messages. Gerade bei https://flows.nodered.org/node/@yadomi/node-red-contrib-philipshue-events war ich darauf angewiesen, da die Doku sehr lückenhaft ist.

      posted in Node-Red
      SirDirk
      SirDirk
    • RE: Probleme mit Huemagic

      @frankyboy73 Mein Problem ist, dass ich nicht so erfahren in Node-Red bin. Ich habe die Log's gesucht - aber nicht gefunden.

      Mittlerweile habe ich die Ursache aber gefunden - aber nicht die Lösung.

      Das Problem liegt in Huematic selbst. Siehe hier: https://github.com/Foddy/node-red-contrib-huemagic/issues/375

      Ich bin deshalb auf https://flows.nodered.org/node/@yadomi/node-red-contrib-philipshue-events umgestiegen.

      Ich musste zwar alles neu programmieren, da ich die Events von 9 Hue-Bewegungsmeldern und 4 Dimmer-Tasten benötige, aber es läuft jetzt zumindest wieder.

      Anscheinend arbeiten nicht so viele Leute mit Hue-Bewegungsmeldern in ioBroker - ich finde die Hardware aber ideal. Huemagic war mal toll - aber die Pflege hakt im Moment etwas ...

      Leider kann man die Bewegungsmelder in ioBroker nicht optimal/ohne Verzögerung abfragen.

      effen28 created this issue in Foddy/node-red-contrib-huemagic

      closed Connection failed to hue bridge / lamps #375

      posted in Node-Red
      SirDirk
      SirDirk
    • Probleme mit Huemagic

      Meine Bewegungsmelder funktionieren nicht mehr. Nodered bekommt die Bewegung nicht mehr mitgeteilt. Also habe ich Huemagic aktualisiert und dann im Bridge-Node einen neuen Hue-Benutzer generiert. Nun wollte ich die Sensoren neu suchen. Dabei erscheint die Meldung "Etwas ist schief gelaufen. Bitte versuchen Sie es erneut. (s. Screenshot).

      Die Meldung ist leider nicht aussagekräftig und ich habe keinen Ansatz für eine Problemlösung.
      Vielleicht hat den Einsatz jemand anderes ??? 🙂 Ich würde mich über Hilfe sehr freuen.

      5192064f-9210-4783-bf3f-da252739a7b1-grafik.png

      posted in Node-Red
      SirDirk
      SirDirk
    • Radiobuttons ValueList und Swipe Navigation

      Wenn ich Widgets der Art Radiobuttons ValueList in Verbindung mit Swipe Navigation auf einer Seite habe setzt der Radiobuttons ValueList die Werte unter Android nicht (getestet mit Huawei P30 unter Chrome und Samsung Galaxy S9+ unter Chrome). Mit Firefox auf dem PC funktioniert es auch. Wenn ich das Swipe-Widget entferne funktioniert es. Hat evtl. jemand eine Idee, wie man das beheben könnte? Ich brauche das nämlich hauptsächlich auf dem Handy! 🙂

      ce466e78-cb6d-4857-a045-0a2723dff935-grafik.png

      posted in Visualisierung
      SirDirk
      SirDirk
    • RE: Unifi WLAN Script 2 mit Anwesenheitskontrolle

      @liv-in-sky
      Teamviewer wäre kein Problem. Wie kann ich die Daten per PN senden?

      posted in JavaScript
      SirDirk
      SirDirk
    • RE: Unifi WLAN Script 2 mit Anwesenheitskontrolle

      @liv-in-sky sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

      nifiHelp.Others der datenpunkt mit den wifi-geräten angelegt word

      Script habe ich mehrfach gestoppt und auch die Instanz neu gestartet.
      Datenpunkte für Anwesenheit sind nicht vorhanden.
      @dslraser
      Leider habe ich nun nicht verstanden, was ich wo ändern muss.

      posted in JavaScript
      SirDirk
      SirDirk
    • RE: Unifi WLAN Script 2 mit Anwesenheitskontrolle

      @dslraser

      Also Zeile 96?

      e9bf440e-aed4-41c0-a84d-3aa6ffcfad55-grafik.png

      Und was müsste ich für mehrere Geräte eintragen?

      posted in JavaScript
      SirDirk
      SirDirk
    • RE: Unifi WLAN Script 2 mit Anwesenheitskontrolle

      @dslraser

      unter dem Teil "//-----------------AB HIER NICHTS MEHR ÄNDERN------------------------------------------------------" habe ich nichts geändert.

      Was muss denn da rein?

      posted in JavaScript
      SirDirk
      SirDirk
    • RE: Unifi WLAN Script 2 mit Anwesenheitskontrolle

      @dslraser sagte in Unifi WLAN Script 2 mit Anwesenheitskontrolle:

      Kannst Du mal diesen Teil ( also ohne Deine Zugangsdaten ab unter Const apName (ohne Deine AP'S) posten

      Folgt hier:

      
      //Vordefinierte Vouchers für  one-click-create - wird hier etwas geändert BITTE DATENPUNKT (Vouchers_StandardList) LÖSCHEN vor Scriptstart!!!!
      //BITTE alle Werte eingeben - für nichtbenutzte wie up-, download und nmb_begrenzung eine 0 eintragen
      // Pflichteinträge sind dauer, anzahl, multiuse und notiz !!!
      const standardVouchers = {"Vier Tage" : {dauer: 240, anzahl: 1, multiuse: 1, upload: 0, download:0, mb_begrenzung: 500, notiz:"MB Begrenzung 500 - 4 Tage"}, 
                                "Sieben Tage" : {dauer: 10080, anzahl: 1, multiuse: 1, upload: 300, download:300, mb_begrenzung: 500, notiz:"MB Begrenzung 500 - 7 Tage"},
                                "99 Minuten" : {dauer: 99, anzahl: 2, multiuse: 1, upload: 0, download:200, mb_begrenzung: 500, notiz:"Dauer 99 Minuten - Anzahl 2"}}
      
      const blackList = [] //Blacklist - diese clients werden nicht berücksichtigt - aber nur wenn ein alias im controller definiert ist
      const checkConnType=["MephistoFon"];  // Datenpunkte (werden erstellt) für Überwachung von Connection (WLAN only) - aber nur wenn ein alias im controller definiert ist
                                                         // wenn leer - keine überwachung (const checkConnType=[])
      
      //Pause bei Umschalten der WLANnetze, damit Netzanmeldungen der clients wieder normal
      const clientPauseConst = 200000;    //1000 bedeutet 1 Sekunde -  das braucht Zeit !!!
      
      // Abfragezyklus definieren
      const abfragezyklus =20000; // es ist nicht zu empfehlen unter 20000 (20 sekunden) zu gehen
      const abfageoffset = 45000; // zu schnelle Abmeldungen können hier eingestellt weren - > erhöhen (15000 = 15 sek.)
      
      //HIER Einstellungen : EIN-AUSSCHALTEN Vouchers, iqontrol-Datei erstellen, anwesenheitskontrolle-clientpflege
      let iqontrol = true;
      let anwesenheit = true; // beim setzen von true auf false die verzeichnisstruktur unter iobroker-objects "von hand" löschen
      
      let vouchers = false;
      let apInfo = true;
      let problemWLAN=false; //bei problemen mit APs die über WLAN angebuden sind
      let countFalseSetting=2; //2 bedeutet : einmal einen abfragezyklus auslassen bevor auf false gesetzt wird: Formel:  n-1
      let aliasname=false; 
      let disConClientsFirst=true; //zeigt disconnected clients als erstes im table (vis) oder iqontrol an
      
      let ohneClientAbfrage=false; //schaltet das bearbeiten der clients vollständig ab - auch keine datenpunkte
      
      let sortedByIP =false; //client anzeige nach IP sortiert
      
      
      //FARBEN für IQontrol und VIS
      //die farbe für die tabellen in der vis wird im widget eingestellt
      //color_vis_text_client_in_table
      //color_vis_text_voucher_in_table
      let color_iqontrol_text__client_letzteAenderung_VIS="lightblue";
      let color_iqontrol_text__client_letzteAenderung_VIS_Text="#d0cdcd";
      let color_iqontrol_text_client_in_table= "black";  
      let color_iqontrol_text__client_disconnected="#01A9DB";
      
      let color_iqontrol_client_gradient1= "lightblue";   
      
      let color_iqontrol_text_voucher_in_table= "black"; 
      let color_iqontrol_voucher_gradient1= "lightblue"; 
      let color_iqontrol_text__client_letzteAenderung="#848484";
      let color_iqontrol_text__voucher_ueberschrift="lightblue";
      
      let schriftart="Helvetica";  //möglich: Helvetica,Serif
      
      
      //-----------------AB HIER NICHTS MEHR ÄNDERN------------------------------------------------------
      
      const versionNr = "12122019-3.0"
      const dpPrefix = "javascript."+ instance +".";
      // Hier Definition iqontrol-Style für Popup
      const format = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_voucher_in_table+";text-align:center; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent,"+color_iqontrol_voucher_gradient1+");\">";
      const format2 = "<!DOCTYPE html><html lang=\"de\"><head><title>Clients</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body><table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
      const format3 = "<table style=\"color:"+color_iqontrol_text__client_letzteAenderung_VIS_Text+"; font-family:"+schriftart+";\">";
      const format6 ="<tr><td>&ensp;</td><td>&ensp;</td></tr> <tr style=\"color:"+color_iqontrol_text__voucher_ueberschrift+";\">"
      const apHead = "<!DOCTYPE html><html lang=\"de\"><head><title>Voucher</title><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body>"
      const apTable = "<table style=\"color:"+color_iqontrol_text_client_in_table+"; font-family:"+schriftart+";background-image: linear-gradient(42deg,transparent," +color_iqontrol_client_gradient1+");\">";
      const tableAus = "</table>";
      
      
      
      const request = require('request-promise-native').defaults({ rejectUnauthorized: false });
      
      const pathVoucher = "/htmlvoucher.html"; const pathClient = "/htmlclients.html"; const pathInfo = "/htmlinfo.html"; const pathAlarm = "/htmlalarm.html"; const pathAbmelung = "/htmlLog.html";
      const pathOnlyWLAN = "/htmlwlan.html";const pathOnlyLAN = "/htmllan.html";const pathOnlyDISC = "/htmldisc.html";
      let cookies = [];
      let loggedIn = false;
      let debug = false;
      let mylogs = false;
      let syslogs = false;
      let xxClientxx="Heiko-Note10"; // falls der name leerzeichen beinhaltet müssen diese mit _ ersetzt werden z.b : "liv in sky handy"  zu  "liv_in_sky_handy"
      let xxClientxxIndex=0;
      let clientPause = false;
      let clientPauseVal;
      let wifiDPs = [];
      
      let wifiDPsHide = [];
      let vouchiesDPs=[];
      let myname = 'hostname';
      let respv; let respc; let respw; let resph; let respgv; let respa; let respal; //geholte Daten
      let countFalse=1; 
      let statusarr=[];
      let writeFileVar =0;
      let listValue=[];            //iqontrol löschen kachel
      let listValue2;              //iqontrol löschen kachel
      let listValue3;              //iqontrol löschen VIS
      let nichtSchalten=true;   
      //let nichtSchalten2=false;    //iqontrol löschen kachel
      let versuch;
      let listeDatenpunkte = [];
      let listeDatenpunkteControl=[];
      let countie;
      let binAmArbeiten=false;
      var midnight=false;
      let apListeTable;
      let apListe;
      let healthListe;
      let healthListeTable;
      let notSeen=[];
      let ipArrFehlt=[];
      var notseenLengthOld;
      var notseenLength;
      let lastChange=[];
      let mybodyVouchers2; // create-one-click-standard-voucher
      let expire_var; // create-one-click-standard-voucher
      let n_var; // create-one-click-standard-voucher
      let quota_var; // create-one-click-standard-voucher
      let note_var; // create-one-click-standard-voucher
      let up_var; // create-one-click-standard-voucher
      let down_var; // create-one-click-standard-voucher
      let MBytes_var; // create-one-click-standard-voucher
      let testerral=false; let testerrc=false; let testerrl=false; let testerrv=false; let testerrs=false; let testerrh=false; let testerrcv=false; let testerrdv=false; let testerrws=false; let testerrap=false; 
      var scriptCounter=0;
      let health = true;  // Angaben zum Systemstatus - die Healtdaten werden nur alle 5 Abfragezyklen geholt
      let alarmSwitch =false;
      let alarmCounter =0;
      let firstTime=0;
      let mybodyVouchers;
      let monthChangeData=false;
      let checkNetwork=false;
      var wifiLength=0;
            for(let wifi_name in wifis) {      
          wifiLength++; }
      
      
       if (aliasname)  myname="name";
       if (ohneClientAbfrage) anwesenheit=false;
       writeMyFile("neugestartet ... bitte warten", pathClient);
       writeMyFile("neugestartet ... bitte warten", pathVoucher);
       writeMyFile("neugestartet ... bitte warten", pathAlarm);
       writeMyFile("neugestartet ... bitte warten", pathInfo);
       writeMyFile("neugestartet ... bitte warten", pathOnlyWLAN);
       writeMyFile("neugestartet ... bitte warten", pathOnlyLAN);
       writeMyFile("neugestartet ... bitte warten", pathOnlyDISC);
       if ( !anwesenheit) {writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathClient);
                           writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathOnlyWLAN);
                           writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathOnlyLAN);
                           writeMyFile("variable anwesenheit und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathOnlyDISC);}
      
      
       if ( !vouchers && !iqontrol) writeMyFile("variable vouchers und/oder iqontrol ist nicht im unifiscript aktiviert - auf true setzen", pathVoucher);
      
      for(let wifi_name in wifis) {
           wifiDPsHide.push(dpPrefix + "WLANUnifi.WLANSSIDsHide." + wifis[wifi_name].name);
           createState(dpPrefix + "WLANUnifi.WLANSSIDsHide."+ wifi_name, false, { name: wifis[wifi_name].desc, role: 'switch', read: true, write: true, type: "boolean" });}
      
       //Erstelle Datenpunkte für die WLANs automatisch
       for(let wifi_name in wifis) {
           wifiDPs.push(dpPrefix + "WLANUnifi." + wifis[wifi_name].name);
           createState(dpPrefix + "WLANUnifi."+ wifi_name, { name: wifis[wifi_name].desc, role: 'switch', read: true, write: true, type: "boolean" });}
      
       createState(dpPrefix + "WLANUnifi.Wifi_Clients", "not available",{ name: 'Clients_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
       createState(dpPrefix + "WLANUnifi.Wifi_ClientsOnlyLAN", "not available",{ name: 'Clients_LAN_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
       createState(dpPrefix + "WLANUnifi.Wifi_ClientsOnlyWLAN", "not available",{ name: 'Clients__WLAN_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
       createState(dpPrefix + "WLANUnifi.Wifi_ClientsOnlyDISC", "not available",{ name: 'Clients__Disconnected_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
       createState(dpPrefix + "WLANUnifi.Wifi_Clients_Anzahl_LAN",  { name: 'Wifi_Clients_Anzahl_LAN', desc: 'Wifi_Clients_Anzahl_LAN', type: 'number',def:0, unit: '', min: '0', max: '100', role: '',read: true, write: false });
       createState(dpPrefix + "WLANUnifi.Wifi_Clients_Anzahl_WLAN",  { name: 'Wifi_Clients_Anzahl_WLAN', desc: 'Wifi_Clients_Anzahl_WLAN', type: 'number',def:0, unit: '', min: '0', max: '100', role: '',read: true, write: false });
       createState(dpPrefix + "WLANUnifi.Wifi_Clients_Anzahl_DISC",  { name: 'Wifi_Clients_Anzahl_DISC', desc: 'Wifi_Clients_Anzahl_DISC', type: 'number',def:0, unit: '', min: '0', max: '100', role: '',read: true, write: false });
       createState(dpPrefix + "WLANUnifi.SiteLED", false, { name: 'SiteLED',  type: 'boolean', role: 'switch', read:  true,  write: true,});
       createState(dpPrefix + "WLANUnifi.Client_WhiteList", "default", { name: 'Client_WhiteList_Filter_String', desc: 'Alarm_Table', type: 'string', unit: '',  role: '',read: true, write: true }); 
       createState(dpPrefix + "WLANUnifi.Alarm.Alarm", { name: 'Alarm_Table_not_archieved', desc: 'Alarm_Table', type: 'string', unit: '',  role: '',read: true, write: true }); 
       createState(dpPrefix + "WLANUnifi.Missing_Name", "not available", { name: 'Missing_Name', desc: 'Missing_Name', type: 'string', unit: '',  role: '',read: true, write: true }); 
       createState(dpPrefix + "WLANUnifi.Alarm.Alarm_Anzahl", { name: 'Alarm_Anzahl', desc: 'Alarm_Table', type: 'number', unit: '',  role: '',read: true, write: true });
       createState(dpPrefix + "WLANUnifi.ZyklusZaehler", 1, { name: 'ZyklusZaehler', desc: 'ZyklusZaehler', type: 'number', unit: '',  role: '',read: true, write: true });
       createState(dpPrefix + "WLANUnifi.xxxScriptVersionxxx", versionNr,{ name: 'ScriptVersion', desc: 'ScriptVersion', type: 'string', unit: '',  role: '',read: true, write: true });
       if (anwesenheit) createState(dpPrefix + "WLANUnifi.Wifi_Clients_Log", { name: 'Clients_HTML_Table_VIS_Log',  role: 'string', read:  true,  write: true,});
      
       var foo = (aliasname) ? true : false;
       createState(dpPrefix + "WLANUnifi.AliasName", foo,  { name: ' AliasName',  desc:  'schaltet Aliasnamen ein', role: 'switch', type: 'boolean', read:  true,  write: true,
                  }  , function() {setStateDelayed(dpPrefix + "WLANUnifi.AliasName", foo, 200)});
      
       //createState(dpPrefix + "WLANUnifi.Aussortiert", { name: 'Aussortiert',  role: 'string', read:  true,  write: true,});
      
      
       if (vouchers) {
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers", { name: 'Vouchers_HTML_Table_VIS',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_List", { name: 'Vouchers_ID_List',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_CodeList", { name: 'Vouchers_Texte_Delete_VIS_Widget',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_CodeList2", { name: 'Vouchers_Werte_Delete_VIS_Widget',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_ValueCodeList", { name: 'Vouchers_ValueList_IQontrol', desc:"ValueCodeList", role: "", type:'number', states: "1:please wait ...;2:refresh webpage", def:1, min: 0, max: 20,  read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Create", false,  { name: 'A_New_Voucher_Create',  role: 'switch', type: 'boolean', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_DeleteVIS",   { name: 'Vouchers_Schalter_Delete_VIS_Widget',  role: 'switch', type: 'number', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers_CreateStandard", 1,  { name: 'Vouchers_Schalter_Create_VIS_Widget',  role: 'switch', type: 'number', read:  true,  write: true,});
        //createState(dpPrefix + "WLANUnifi.Wifi_Create_Standard_Voucher", false,  { name: 'A_Delete_Voucher',  role: 'switch', type: 'boolean', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Delete", false,  { name: 'Voucher_Delete__Botton_VIS',  role: 'switch', type: 'boolean', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_Delete_Voucher.Voucher_ID", "must be set",{ name: 'A_Delete_Voucher.Voucher_ID', role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Dauer", "must be set",{ name: ' A_New_Voucher_Dauer',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.MultiUse", "must be set",{ name: ' A_New_Voucher_MultiUse',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Anzahl", "must be set",{ name: ' A_New_Voucher_Anzahl',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Notiz", "",{ name: ' A_New_Voucher_Notiz',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Upload", "",{ name: ' A_New_Voucher_Uplaod',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Download", "",{ name: ' A_New_Voucher_Download',  role: 'string', read:  true,  write: true,});
        createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.A_New_Voucher.Mb_Begrenzung", "", { name: ' A_New_Voucher_Mb_Begrenzung',  role: 'string', read:  true,  write: true,});
      
      for (var i = 1; i < 21; i++) { 
          var x=i.toString();
          if (i<10) x="0"+x;
         createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x, { name: 'Unifi Voucher_Code'+x,  role: 'string', read:  true,  write: true, });
         createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".code"+x, { name: 'Unifi Voucher_Code_code'+x,  role: 'string', read:  true,  write: true, });    
         createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".erstellt", { name: 'Unifi Voucher_Code_erstellt'+x,  role: 'string', read:  true,  write: true, });
         createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".dauer", { name: 'Unifi Voucher_Code_duration'+x,  role: 'string', read:  true,  write: true, });
         createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".abgelaufen", { name: 'Unifi Voucher_Code_expires'+x,  role: 'string', read:  true, write: true, });
         createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".id", { name: 'Unifi Voucher_Code_id'+x,  role: 'string', read:  true,  write: true, });
         createState(dpPrefix + "WLANUnifi.Wifi_Vouchers-CODES.CODE"+x+".notiz", { name: 'Unifi Voucher_Code_notiz'+x,  role: 'string', read:  true,  write: true, });
      }
          let vouchiesHelper=""  //Werteliste-Datenpunkt für StandardVouchies
          let vouchiesHelper2="Wähle Standard;"
          let vouchiesHelper3="1;"
           countie=0;
      posted in JavaScript
      SirDirk
      SirDirk
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo