Navigation

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

    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

    Z
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 6
    • Best 0
    • Groups 1

    zwergigor

    @zwergigor

    0
    Reputation
    5
    Profile views
    6
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    zwergigor Follow
    Starter

    Latest posts made by zwergigor

    • DSB Mobile Abfrage per iobroker

      Re: DSB - Abrage

      Hallo,
      nachdem ich im Main Beitrag damals die meisten Infos für eine laufende Abfrage gefunden habe will ich heute mal meinen derzeitigen Ansatz freigeben.
      Bitte, ich gebe keinen wirklichen Support. Sicherlich einige Fragen kann ich beantworten bin aber eher PowerUser also Entwickler.

      • Umgebung: Pi4 mit iobroker, Python 3.9
        Naja iobroker ganz normal aufgesetzt, Python installieren (Anleitungen im Netz)
      • Python Modul: pysdb 2.1.1.
        Ein Python Script erstellt:
      import pydsb
      dsb = pydsb.PyDSB("xxxxxxx", "xxxxxxx") //Zugangsdaten user/pw
      a = dsb.get_plans()
      print(a[0])
      
      • Script in Javascript, aufruf eines Python Script's, extrahieren des DAB Links, Aufruf der htm Datei, Parsen der Schul-Daten
      //Setzte CronDaten für den automatischen Aufruf dieses Script's**
      var cron1 = "15 6,8,19-20 * * *";  // Jede Stunden um 15 nach 6h, 8h, 19-20h Mo-So
      var cron2 = "10,15,20,25,27,30,32,35,40,50 7 * * 1-5"; 		// von 7:00 - 7:20 Alle 2 Min Mo-Fr
      //Aufruf eines Python Script's
      function get_dsb_data() {
              var python = require('child_process').spawn('python3',
              // second argument is array of parameters, e.g.:
              //Pfad zum Python Script
              ["/home/iobroker/dsb.py"]);
              var result = '';
              python.stdout.on('data', function(data){ result += data.toString(); });
              python.on('close', function(code){ 
              if (code !== 0) {  
                      log('Error: ' + code); 
              } else {
                      log(result);
                      //Extrahieren der DSB Daten
                      result = result.replace(/\{/g, "");
                      result = result.replace(/\}/g, "");
                      arr = result.split(",")
                      //Datum
                      dsbdate = arr[1].replace(/\'/g, "");
                      dsbdate = dsbdate.replace(/ uploaded_date/g, "Datum");
                      //Link
                      dsblink = arr[3].replace(/\'/g, "");
                      dsblink = dsblink.replace(/ url: /g, "");
                      dsblink = dsblink.replace(/ /g, "");
                      //Füllen der Objekt states in iobroker Datum/HTML Link zum Schulplan
                      setState('javascript.0.dsbplan.Date', dsbdate, true);
                      setState('javascript.0.dsbplan.LINK', dsblink, true);
                      //Abrufen des Schulplans
                      request(dsblink, function (error, response, body) {
                          //Füllen des Objekts RAW in iobroker mit den Rohdaten des Schulplans
                          setState('javascript.0.dsbplan.RAW',body);
                      });     
        
              }
              });
          };
      //HTML Raw Daten bearbeiten
      function parseplan() {
          //Klasse/Klassen Wählen (Ich habe Zwillige :-))
          var klasse = ["7C","7D"];
          var myArrayA;
          var myArrayB;
          var mystra;
          var bid;
          var kid
          
          myArrayA = [];
          myArrayB = [];
          //HTML Raw Daten holen
          mystra = getState('javascript.0.dsbplan.RAW').val;
      
          //Alles was im HTML Code ersetzt werden soll 
          mystra = mystra.replace(/7C/g, "7C (Evelina)");
          mystra = mystra.replace(/7D/g, "7D (Matthis)");
          mystra = mystra.replace(/f�r/gi, "für");
          mystra = mystra.replace(/R�ume/gi, "Räume");
          mystra = mystra.replace(/entf�llt/gi, "<h1><b>fällt aus</b></h1>");
          mystra = mystra.replace(/g�ltig ab 07.02.22/g, "");
          mystra = mystra.replace(/aufgel�st/g, "aufgelöst");   
          mystra = mystra.replace(/Stundenplan 21-22_1./g, "");
          mystra = mystra.replace(/Halbjahr_Version/g, "");
          mystra = mystra.replace(/1_Stand_15.03.22/gi, "");
          mystra = mystra.replace(/Untis Stundenplan Software/g, "");
          mystra = mystra.replace(/Untis/g, "");
          mystra = mystra.replace(/ 2022 /g, "");
          mystra = mystra.replace(/\<tr class="info"\>\<th class="info" align="center" colspan="2"\>/gi, "");
          mystra = mystra.replace(/class="info"/gi, "");
          mystra = mystra.replace(/Nachrichten zum Tag\<\/th\>\<\/tr\>/gi, "");
          mystra = mystra.replace(/Stand:.+\<p>/gi, "<p>");
          mystra = mystra.replace(/BEETHOVEN-OBERSCHULE.+/g, "");
          mystra = mystra.replace(/Schuljahr.+/g, "");
          mystra = mystra.replace(/colspan=\"2\"\>/gi, "colspan=\"2\"\>\<font size=\"1\"\>");
          mystra = mystra.replace(/Ihr Browser kann leider keine eingebetteten Frames anzeigen/gi, "");
          
          //Vollschreibweise Lernfächer
          mystra = mystra.replace(/De</g, "Deutsch<");
          mystra = mystra.replace(/Ma</g, "Mathe<");
          mystra = mystra.replace(/Rev</g, "Religion<");
          mystra = mystra.replace(/>Sp</g, ">Sport<");
          mystra = mystra.replace(/PB</g, "Politik<");
          mystra = mystra.replace(/Ph</g, "Physik<");
          mystra = mystra.replace(/Bi</g, "Biologie<");
          mystra = mystra.replace(/En</g, "Englisch<");
          mystra = mystra.replace(/Ch</g, "Chemie<");
          mystra = mystra.replace(/F</g, "Französisch<");
          mystra = mystra.replace(/Ku</g, "Kunst<");
          mystra = mystra.replace(/Ge</g, "Geschichte<");
          mystra = mystra.replace(/Mu</g, "Musik<");
          mystra = mystra.replace(/Ek</g, "Erdkunde<"); 
                  
          //Vollschreibweise Lehrer Namen
          mystra = mystra.replace(/Bj</g, "Baumxxxxx<");
          mystra = mystra.replace(/Hei</g, "Heinxxx<");
          mystra = mystra.replace(/Ott</g, "Otto<");
          mystra = mystra.replace(/Her</g, "Her<");
          mystra = mystra.replace(/Rb</g, "Ribxxx<");
          mystra = mystra.replace(/Ba</g, "Balxxx<");
          mystra = mystra.replace(/Zpr</g, "Zepxxx<");
          mystra = mystra.replace(/Beu</g, "Beuxxxx<");
          mystra = mystra.replace(/Rol</g, "Rolxxxxx<");
          mystra = mystra.replace(/Wsd</g, "Westexxx<");
      
          //Nur HTML Elemente der angegebene Klassen hinzufügen    
          myArrayA = mystra.split("\n");
          myArrayB = myArrayA
      
          myArrayA = [];
              myArrayB.forEach(function (element) {
              if(!element.startsWith("<tr class=\'list")) {
                  myArrayA.push(element);
              }   else if(element.startsWith("<tr class=\'list") && element.includes(klasse[0])) {
                          myArrayA.push(element); 
                  }
                      else if(element.startsWith("<tr class=\'list") && element.includes(klasse[1])) {
                              myArrayA.push(element); 
              }
              
          });
      
          mystra = "";
          myArrayA.forEach(function (element) {
              mystra += element + "\n";
          });
      
          //Füllen des Objekt states HTML in iobroker mit den bereinigten Daten
          setState('javascript.0.dsbplan.HTML', mystra); 
      }
      
      //Automatischen Aufruf dieses Script's alle 15Min*
      schedule(cron1, function () {	// Abruf alle 15Min
      get_dsb_data();
      setTimeout(function() {parseplan();}, 4000);
          
      });
      //Automatischen Aufruf dieses Script's ab 7h in kurzen Abständen
      schedule(cron2, function () {	n
          get_dsb_data();
          setTimeout(function() {parseplan();}, 4000);
      
      });
      
      //Einmaliger Aufruf beim Starten des Scripts*
      get_dsb_data();
      setTimeout(function() {parseplan();}, 4000);
      
      
      • Vis: Anzeigt Daten
        Dafür nutze ich diesen State setState('javascript.0.dsbplan.HTML

      • Email: sendet Daten an Familie (Kurz vor der Schule)
        Einfach per email Adapter diesen State setState('javascript.0.dsbplan.HTML) versenden

      posted in JavaScript
      Z
      zwergigor
    • RE: [Develop] Onkyo Adapter - VIS Weiterentwicklung

      Hallo Eisbaeeer,

      ACK Bit ?? Nein.

      Habe ein wenig gelesen aber wie setzte ich das über iobroker/VIS.

      Per SetState habe ich was gefunden.

      posted in ioBroker Allgemein
      Z
      zwergigor
    • RE: [Develop] Onkyo Adapter - VIS Weiterentwicklung

      Hallo,

      einen Nachbrenner habe ich noch, wenn ich ein Script (JS) erstelle nur mit dem Inhalt

      setState("onkyo-vis.0.command","LMD94")

      dann wird der Wert gesetzt. (onkyo-vis.0.listening-mode = pliiz-height-thx-cinema)

      Aber halt über das Objekte Tab in iobroker nicht.

      Gruß Matthias

      posted in ioBroker Allgemein
      Z
      zwergigor
    • RE: [Develop] Onkyo Adapter - VIS Weiterentwicklung

      Danke schubi82 und Eisbaeeer,

      nun kann ich auch die Input Modis setzen.

      Hatte einfach nur ein falsches Widget zum setzen verwendet.

      Nur habe ich es immer noch nicht geschafft andere Einstellungen außer den schon erstellten Datenpunkten mit command zu setzten.

      Da komme ich auch mit der Readme nicht weiter.

      Geht das denn überhaupt? zB. "LMD" - Listening Mode Command = 00

      Diese Frage wurde hier noch nicht beantwortet.

      Ansonsten vielen Dank für Eure Hilfe. Jetzt komme ich erst einmal weiter

      Gruß Matthias

      posted in ioBroker Allgemein
      Z
      zwergigor
    • RE: [Develop] Onkyo Adapter - VIS Weiterentwicklung

      Hallo Kun(),

      ich habe auch dasselbe problem.

      Alle VIS Objekte die angelgt werden können (zB. Volume, Power, usw) kann ich per VIS schalten aber mehr auch nicht.

      Versuche ich es wie Du mit dem Command bekomme ich im Log die selben Fehlermeldungen.

      Kann uns wer auf die Sprünge helfen würde gern mein Onkyo VIS fertigstellen aber ich kann noch nicht einmal die einzelnen Modi's (BD,TV,Tuner usw.) setzen

      7050_vis-onkyo.png

      posted in ioBroker Allgemein
      Z
      zwergigor
    • RE: Onkyo Input Status in Vis

      Hallo,

      ich bin auch bei iobroker gelandet.

      Habe auch schon einen kleinen View erstellt.

      Lampen, Heizung, Anwesenheit, ich arbeite zudem mit Google Home+IFTTT.

      Nun bin ich bei Audio gelandet und wollte meinen Onkyo 929 steuern.

      Seid Ihr mit dem View / Widget weitergekommen.

      Und habt ihr Exports von Widgets und Scripts als Anhaltspunkt.

      Gruss Matthias

      posted in ioBroker Allgemein
      Z
      zwergigor
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo