Navigation

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

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    C
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 41
    • Best 2
    • Groups 1

    charakterkopf

    @charakterkopf

    3
    Reputation
    123
    Profile views
    41
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    charakterkopf Follow
    Starter

    Best posts made by charakterkopf

    • RE: [Aufruf] Welche guten JavaScripts setzt ihr ein?

      Die Idee ist super. Es fehlt wirklich eine Script Bibliothek.

      Hier ein Script um Datenpunkte von z.B. Funksensoren auf Lebendigkeit zu testen. Meine Zigbee Sensoren schmierten früher immer gerne ab und ich habe es nie erkannt.

      //Das Script überprüft regelmässig die Datenpunkte auf Aktualisierung
      
      //Angabe des Datenpunkts= Datenpunkt der Überwacht werden soll
      //StateBezeichnung= Unter pfad_javascript.StateBezeichung wird ein State angelegt; True = Daten sind aktuell / False = Daten veraltet
      //Zeit in Sekunden = Zeit die vergangen sein darf seit der letzen Aktualisierung des Datenpunkts  (0 = default Zeit wird genommen).
      
      schedule("*/3 * * * *" , function () {                                  
      
          // Angabe des Datenpunkts;StateBezeichnung;Zeit in Sekunden
          var ueberwachung = ['fritzdect.0.Comet_119610277592.temp;Heizung;400', 
                              'mqtt.0.zigbee2mqtt.Kuehlschrank;Temp_Kuehlschrank;7000',
                              'mqtt.0.zigbee2mqtt.gefrierfach;Temp_Gefrierschrank;7000',
                              'mqtt.0.zigbee2mqtt.TemperaturBad;Bad_Feuchtigkeit;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_1;Fenster_1;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_2;Fenster_2;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_3;Fenster_3;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_4;Fenster_4;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_5;Fenster_5;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_6;Fenster_6;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_7;Fenster_7;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_8;Fenster_8;7000'];
      
      
          var default_zeit = 240;
          var pfad_javascript ='javascript.0.watchdog.';   // Beispiel: 'javascript.0.watchdog.'  !Punkt nicht vergessen am Ende!
      
      
          //------------------------------------------------------------------
          //Ab hier nichts mehr Ändern
          //------------------------------------------------------------------
          var zeit= Math.floor(Date.now() / 1000);
          var differenz, lchange;
          var daten, tchange;
      
          ueberwachung.forEach(function(item, index, array) 
          {
              // Array Splitten
                 daten = item.split(";");
      
              //Datenpunkt erstellen wenn nicht vorhanden
                  createState(pfad_javascript + daten[1], { read: true, write: false, name: "Watchdog " + daten[1], type: "boolean", role: " ", def: "false"});
      
              //Differenz Zeit default oder manuell?
                  differenz = parseInt(daten[2]);
                  if (differenz == 0) differenz=default_zeit;
      
              //Zeitstempel abfragen in Sekunden
                  tchange=parseInt(getState(daten[0]).ts / 1000);
                  
              //Vergleichen der Zeitstempel
                      if ((zeit-tchange)>differenz)
                      {
                          setState(pfad_javascript + daten[1], false);
                          //console.log(daten[1] + "  ist älter als " + differenz + " Sekunden");
                      }
                      else
                      {
                          setState(pfad_javascript + daten[1], true);
                          //console.log(daten[1] + "  ist jünger als " + differenz + " Sekunden");
                      } 
       
          });  
      });
      
      
      posted in JavaScript
      C
      charakterkopf
    • Abfrage ORNO OR-WE-516/ 517 Modbus, evtl. Script vorhanden?

      Hallo IOBroker Forum,

      hat zufällig jemand die oben genannten Zähler bereits per Modbus angeschlossen? Habe über die Suche nichts gefunden.

      Mein Plan ist per Raspberry und mqtt die Daten an Iobroker zusenden. Gibt es hierfür bereits Erfahrungen bzw. fertige Python Scripts? Möchte vermeiden Stundenlang an der Modbus Abfrage zu Basteln. Die Herstellerdoku scheint auch Fehler zu behalten.

      Das fertige Script für MQTT poste ich dann anschliessend hier.

      Danke und Gruß
      charakterkopf

      posted in ioBroker Allgemein
      C
      charakterkopf

    Latest posts made by charakterkopf

    • RE: Import Statement

      @chrille1507 Servus! Hast du zufällig eine Anleitung zum Einbinden. Würde auch gerne meinen Timetree Kalender einbinden 🙂 Danke!

      posted in JavaScript
      C
      charakterkopf
    • RE: [Tester gesucht] Roborock-API

      @meistertr Servus, der Adapter sieht doch schon super aus. Gibt es den irgendwo schon zum testen? Gruß & Danke Martin

      posted in JavaScript
      C
      charakterkopf
    • RE: [How-to] Node.js ioBroker richtig updaten-2021/22 Edition

      Für Windows hat bei mir so geklappt:

      1: Konsole: iobroker stop

      2: Sicherung des Ordners: C:\Program Files\iobroker\deinhostname\nodejs auf dem Desktop

      3: Download der benötigten Node.js Version unter https://nodejs.org als Archiv nicht als msi Datei (14.7,6 habe ich genommen)

      4: Entpacken des Downloads und kopieren den Gesamten Ordners über den vorhandenen C:\Program Files\iobroker\deinhostname\nodejs Ordner.

      5: Kopiere aus der Sicherungskopie des Desktops die Datei nodevars.bat in den Ordner C:\Program Files\iobroker\deinhostname\nodejs

      6: Konsole: iobroker start

      Steht auch bereits in älteren Beiträgen

      posted in ioBroker Allgemein
      C
      charakterkopf
    • RE: Abfrage ORNO OR-WE-516/ 517 Modbus, evtl. Script vorhanden?

      @herrniffler Servus, ich habe das Kabel (Netzwerkleitung) durch den Hausflur bis zum Raspberry Pi verlegt ca. 5m.

      Der Raspberry wird über die Fritzbox mit Strom versorgt und hat noch mehr Funktionen (Anwensenheit / LED Leiste) deswegen war eine Montage im Schrank nicht möglich.

      Gruß Martin

      posted in ioBroker Allgemein
      C
      charakterkopf
    • RE: slave aufbauen - Bluetooth verbindung

      Mehr als 10Meter schaffe ich auch nicht.
      A) Kannst du den Raspberry besser platzieren?
      B) Ich habe das selbe Problem und habe deshalb einen kleinen Raspberry Zero W zur Anwesenheitserkennung sehr zentral in der Wohnung hängen.

      Zusammen mit einem Python Script wird die Anwesenheit zuverlässig per MQTT an Iobroker (Im Keller) gemeldet.

      vielleicht hilft es weiter, Ich weiss nicht wie fit du in Python bist:

      #!/usr/bin/python
      import time
      import paho.mqtt.client as paho
      import json
      import subprocess
      import bluetooth
      
      #Config
      mqtt_username=""
      mqtt_password=""
      mqtt_server="192.168.0.2"
      mqtt_port=1885
      mqtt_subscribe="/bl-ping/remote"
      
      mqtt_publish1="/bl-ping/gtag_red"
      mqtt_publish2="/bl-ping/gtag_green"
      mqtt_publish3="/bl-ping/gtag_orange"
      
      #Start
      gtag_red=0
      gtag_green=0
      gtag_orange=0
      
      #Nach X Minuten abwesenheit senden:
      anzahl=2
      
      time.sleep(60)
      
      
      def on_subscribe(client, userdata, mid, granted_qos):
          print("Subscribed: "+str(mid)+" "+str(granted_qos))
      
      def on_message(client, userdata, msg):
          print(msg.topic+" "+str(msg.qos)+" "+str(msg.payload))
      
      client = paho.Client(client_id="bl-ping", clean_session=True, userdata=None, protocol=paho.MQTTv31)
      client.on_subscribe = on_subscribe
      client.on_message = on_message
      client.username_pw_set(mqtt_username, mqtt_password)
      client.connect(mqtt_server, mqtt_port,60)
      client.subscribe(mqtt_subscribe, qos=1)
      
      
      print ("In/Out Board")
      
      while True:
         client.loop_start()
         print ("Scanning " + time.strftime("%a, %d %b %Y %H:%M:%S"))
         #BLE
         cmd = "blescan -t 5 >daten.txt"
         pid = subprocess.call(cmd, shell=True)
        
        
         #gtag RED
         if '7c:2f:82:ea:f5:40' in open('daten.txt').read():
          client.publish(mqtt_publish1, "1", qos=1)
          print ("Gtag red in")
          gtag_red=0
         else:
           if gtag_red > anzahl:
            client.publish(mqtt_publish1, "0", qos=1)
            print ("Gtag red out")
            gtag_red=3
           else:
            gtag_red = gtag_red + 1
            
      	#gtag green
         if '7c:2f:80:ea:f6:c3' in open('daten.txt').read():
          client.publish(mqtt_publish2, '1', qos=1)
          print ("Gtag green in")
          gtag_green=0
         else:
           if gtag_green > anzahl:
            client.publish(mqtt_publish2, '0', qos=1)
            print ("Gtag green out")
            gtag_green=3
           else:
            gtag_green = gtag_green + 1
            
      	#gtag orange
         if '7c:2f:80:ea:f4:f9' in open('daten.txt').read():
          client.publish(mqtt_publish3, '1', qos=1)
          print ("Gtag orange in")
          gtag_orange=0
         else:
           if gtag_orange > anzahl:
            client.publish(mqtt_publish3, '0', qos=1)
            print ("Gtag orange out")
            gtag_orange=3
           else:
            gtag_orange = gtag_orange + 1
      
      
         time.sleep(60)
      
      
      
      
      posted in ioBroker Allgemein
      C
      charakterkopf
    • RE: Ecozy Thermostat

      @David-Froebus

      Hi!

      also ich habe die Dinger im letzten Winter rausgeschmissen. Batterienfresser + ständig Verbindungsabbrüche. Werte wurden nicht übernommen etc. Kann Sie also nicht empfehlen.

      Angeschlossen mit Zigbee2mqtt und später orginal Zigbee adapter.

      Bin jetzt auf Fritz Dect und super zufrieden.

      Gruß Martin

      posted in Hardware
      C
      charakterkopf
    • RE: Zigbee Überwachung letzer empfangener Wert

      Hi,
      hatte so ein Skript vor einiger Zeit schon gepostet. Telegram meldung müsste ja einfach sein:

      // setState("telegram.0.communicate.response", "Info: Gerät nicht erreicht");

      mal auskomentieren.

      Vielleicht Hilfts - Gruß Martin

      @charakterkopf said in [Aufruf] Welche guten JavaScripts setzt ihr ein?:

      Die Idee ist super. Es fehlt wirklich eine Script Bibliothek.

      Hier ein Script um Datenpunkte von z.B. Funksensoren auf Lebendigkeit zu testen. Meine Zigbee Sensoren schmierten früher immer gerne ab und ich habe es nie erkannt.

      //Das Script überprüft regelmässig die Datenpunkte auf Aktualisierung
      
      //Angabe des Datenpunkts= Datenpunkt der Überwacht werden soll
      //StateBezeichnung= Unter pfad_javascript.StateBezeichung wird ein State angelegt; True = Daten sind aktuell / False = Daten veraltet
      //Zeit in Sekunden = Zeit die vergangen sein darf seit der letzen Aktualisierung des Datenpunkts  (0 = default Zeit wird genommen).
      
      schedule("*/3 * * * *" , function () {                                  
      
          // Angabe des Datenpunkts;StateBezeichnung;Zeit in Sekunden
          var ueberwachung = ['fritzdect.0.Comet_119610277592.temp;Heizung;400', 
                              'mqtt.0.zigbee2mqtt.Kuehlschrank;Temp_Kuehlschrank;7000',
                              'mqtt.0.zigbee2mqtt.gefrierfach;Temp_Gefrierschrank;7000',
                              'mqtt.0.zigbee2mqtt.TemperaturBad;Bad_Feuchtigkeit;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_1;Fenster_1;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_2;Fenster_2;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_3;Fenster_3;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_4;Fenster_4;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_5;Fenster_5;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_6;Fenster_6;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_7;Fenster_7;7000',
                              'mqtt.0.zigbee2mqtt.Fenster_8;Fenster_8;7000'];
      
      
          var default_zeit = 240;
          var pfad_javascript ='javascript.0.watchdog.';   // Beispiel: 'javascript.0.watchdog.'  !Punkt nicht vergessen am Ende!
      
      
          //------------------------------------------------------------------
          //Ab hier nichts mehr Ändern
          //------------------------------------------------------------------
          var zeit= Math.floor(Date.now() / 1000);
          var differenz, lchange;
          var daten, tchange;
      
          ueberwachung.forEach(function(item, index, array) 
          {
              // Array Splitten
                 daten = item.split(";");
      
              //Datenpunkt erstellen wenn nicht vorhanden
                  createState(pfad_javascript + daten[1], { read: true, write: false, name: "Watchdog " + daten[1], type: "boolean", role: " ", def: "false"});
      
              //Differenz Zeit default oder manuell?
                  differenz = parseInt(daten[2]);
                  if (differenz == 0) differenz=default_zeit;
      
              //Zeitstempel abfragen in Sekunden
                  tchange=parseInt(getState(daten[0]).ts / 1000);
                  
              //Vergleichen der Zeitstempel
                      if ((zeit-tchange)>differenz)
                      {
                          setState(pfad_javascript + daten[1], false);
                          //console.log(daten[1] + "  ist älter als " + differenz + " Sekunden");
                    //Telegramm
                         // setState("telegram.0.communicate.response", "Info: Gerät nicht erreicht");
                        // setState("telegram.0.communicate.response", daten[1]);
                      }
                      else
                      {
                          setState(pfad_javascript + daten[1], true);
                          //console.log(daten[1] + "  ist jünger als " + differenz + " Sekunden");
                      } 
       
          });  
      });
      
      
      posted in Skripten / Logik
      C
      charakterkopf
    • RE: Abfrage ORNO OR-WE-516/ 517 Modbus, evtl. Script vorhanden?

      Danke 🙂

      posted in ioBroker Allgemein
      C
      charakterkopf
    • RE: Test Adapter mihome-vacuum v2.0.x

      erledigt

      posted in Tester
      C
      charakterkopf
    • RE: Problem mit Zigbee über mqtt

      hi,
      Mein Script schickt alle paar Sekunden den Wert 1 an den MQTT Server (Objekt Test1). Wenn das also längerer Stabil Zeit läuft scheint es tatsächlich an Zigbee2Mqtt liegen.

      Zur Frage: Richtig Zigbee2Mqtt ist der MQTT client.

      Dann bleibt ja nurnoch Zigbee2Mqtt mal zu löschen und neu zu Installieren auf dem Raspberry. VIelleicht kann hier das Zigbee2Mqtt Forum helfen.

      Zigbee2Mqtt hat ebenfalls einen Debug Modus:
      https://www.zigbee2mqtt.io/information/debug.html

      Vielleicht hilft das weiter. Ich hatte mit Zigbee2Mqtt nie solche Probleme und bin langsam "Überfragt"

      Gruß Martin

      posted in ioBroker Allgemein
      C
      charakterkopf
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo