Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. [ERLEDIGT] Wunsch: ioBroker.vis-canvas-gauges erweitern auf dynamische Sektoren

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    678

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    523

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.1k

[ERLEDIGT] Wunsch: ioBroker.vis-canvas-gauges erweitern auf dynamische Sektoren

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
5 Beiträge 3 Kommentatoren 853 Aufrufe 2 Beobachtet
  • Ä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.
  • M Offline
    M Offline
    mark77
    schrieb am zuletzt editiert von
    #1

    ~~Moin,

    ich bin gerade dabei mein Maverick BBQ Funkthermometer in ioBroker einzubinden, was relativ gut funktioniert.

    Jetzt bin ich dabei, mir in VIS eine Seite zu erstellen, die die Temperaturen der beiden Fühler anzeigt.

    Eine coole Erweiterung wäre es, wenn man die Sektoren der "vis-canvas-gauges" über Objekte verändern könnte, damit man, je nachdem was auf dem Grill liegt, den Bereich der Kerntemperatur verändern könnte.

    Im Moment müsste man ja zig verschiedene Anzeigen erstellen und diese, je nach Bedarf anzeigen bzw. verstecken.

    Gruß,

    Mark

    [EDIT]

    Funktioniert tadellos über Bindings!!!

    PS: Für die, die es interessiert.

    Thermometer: Maverick ET-733

    Funkempfänger: Standard 433MHz

    Code: https://github.com/milaq/maverick_et-733_rf/ wurde von mir so verändert, das nur noch ein Einzeiler im Log steht

    Sehr einfaches Skript zum "abfragen":

    createState('bbq.sensor_1_ist', 0);
    createState('bbq.sensor_2_ist', 0);
    createState('bbq.lastvalue', 0);
    
    var t=setInterval(readTemp,5000);
    var lastTime = 0;
    function readTemp() {
        exec("cat /tmp/maverick.log", function(err, stdout, stderr) {
            if (err) {
                flog(err);
    
                return;
                }
            if(stdout) {
    
                flog(stdout);
                var data = stdout.split(';');
    
                if(lastTime != data[2]) {
                    setState('bbq.sensor_1_ist', data[0]);
                    setState('bbq.sensor_2_ist', data[1]);
                    setState('bbq.lastvalue', data[2]);
                    lastTime = data[2];
                }
    
            }
            if (stderr) {
    
                flog(stderr);
    
            }
        });
    }
    
    
    1 Antwort Letzte Antwort
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von
      #2

      Am besten für Feature-Requests im Github beim Adapter ein Issue anlegen mit Infos, Beispielen und so

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      1 Antwort Letzte Antwort
      0
      • X Offline
        X Offline
        xyroryx
        schrieb am zuletzt editiert von
        #3

        Hallo,

        Wie hast du denn die Abfrage vom Maverick realisiert? Habe das auch vor und Frage noch wie das nur am besten/einfachsten funktioniert.

        1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          mark77
          schrieb am zuletzt editiert von mark77
          #4

          Für die, die über diesen Beitrag stolpern, weil sie auch das Maverick ET-733 nutzen.

          Benötigte Teile:
          Maverick ET-733
          433Mhz Reciever mit (Externer)Antenne
          Raspberry Pi (bei mir reicht der Zero)
          Netzteil für den Pi

          Evtl. zusätzlich:
          2x MAX7219 Dot Matrix Modul z.B. https://de.aliexpress.com/item/32955063973.html

          Damit das ganze funktioniert, muss auf dem Pi folgendes installiert werden:

          sudo apt update
          sudo apt install pigpio python3-pigpio python3-pip python-pip
          pip install setproctitle
          pip install paho-mqtt
          

          In der /etc/rc.local habe ich folgendes ergänzt:

          sleep 15
          
          /usr/bin/pigpiod
          
          echo '{"temperature_2": 23, "checksum": 65342, "type": "et732", "temperature_1": 22, "unit": "\u00b0C", "time": 1554964966.4205735}' > /tmp/maverickpy.log
          chmod 777 /tmp/maverickpy.log
          
          sleep 5
          
          /home/pi/BBQ-Pi/maverick.py --pin 4 --nosync --json &
          /home/pi/BBQ-Pi/bbq2.py &
          #den Display Teil nur dann, wenn ihr ein Matrix Display am Pi betreiben wollt. (# entfernen)
          #/home/pi/BBQ-Pi/display.py &
          
          exit 0
          

          In den Anhang packe ich die Dateien display.py bbq2.py maverick.py

          In der bbq2.py natürlich IP Adresse des MQTT Servers, Benutzername und Passwort anpassen.

          Nutzt ihr das Ganze in dicht besiedelten Gegenden, wo evtl. viele Leute das Maverick einsetzen, könnte es Probleme geben.
          Ich starte die Lib mit "no-sync", d.h. der Empfänger liest die Werte von jedem Maverick in Reichweite.

          Bei mir läuft der Pi-Zero aber im Dauerbetrieb, da ich auf dem Matrix Display die Uhrzeit und Außentemperatur anzeigen lasse und ich keine Lust habe, vor jedem Grillen, das Skript bzw. den Pi neu zu starten.

          Das Ganze, wie immer, ohne jegliche Garantie.

          Gruß,
          Mark

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            mark77
            schrieb am zuletzt editiert von mark77
            #5

            Für die, bei denen IoBroker und der Maverick-Kram auf einem Pi laufen, die können die Zeile

            /home/pi/BBQ-Pi/bbq2.py &
            

            auskommentieren

            #/home/pi/BBQ-Pi/bbq2.py &
            

            und die Daten, die von der maverick.py empfangen werden, mit Hilfe des Javascript Adapters auswerten.

            Hier ein Denkanstoß, wie das klappen könnte:

            Es muss im JavaScript Adapter "Erlaube das Kommando exec" aktiviert werden.
            Dann ein Scrip erstellen (Javascript! Kein Blockly oder TypeScript) und einen Namen vergeben.

            
            var interval = 2; //Interval der Logabfrage in Minuten
            var timeout = 5; //Timeout in Minuten, ab wann wir die Werte als ungültig erklären wollen (Muss ausprobiert werden)
            var validStateName = "BBQ-Pi.SensorValid";
            var sensor1StateName = "BBQ-Pi.Sensor_1";
            var sensor2StateName = "BBQ-Pi.Sensor_2";
            
            //hier werden Datenpunkte angelegt
            createState(sensor1StateName, 0, {
                name: 'Fühler 1',
                desc: 'Temperatur von Fühler 1',
                type: 'number', 
                read: true,
                write: true,    
            });
            
            createState(sensor2StateName, 0, {
                name: 'Fühler 2',
                desc: 'Temperatur von Fühler 2',
                type: 'number', 
                read: true,
                write: true,
            });
            
            createState(validStateName, false, {
                name: 'Werte valide',
                desc: 'Sind die Werte noch aktuell?',
                type: 'boolean', 
                read: true,
                write: true,    
            });
            
            //Lese die logdatei alle 'interval' Minuten
            
            schedule("*/" + interval + " * * * *", function () {
               
                //lesen der logdatei
                exec('cat /tmp/maverickpy.log', function (error, stdout, stderr) {
                    
                    //console.log('stdout: ' + stdout);
            
                    //konvertieren zu JSON
                    var result = JSON.parse(stdout);
            
                    //Sensor 1 abfragen
                    var t1 = result["temperature_1"];
                    //Sensor 2 abfragen
                    var t2 = result["temperature_2"];
                    //Letzten Zeitstempel abfragen und in JavaScript Zeitstempel umwandeln
                    var date_t = new Date(result["time"] * 1000);
                    var date_now = Date.now();
            
                    //Differenz berechnen
                    var age_t = new Date(date_now - (result["time"] * 1000));
            
                    //Schreibe Sensor Werte in die Datenpunkte
                    setState(sensor1StateName, t1);
                    setState(sensor2StateName, t2);
            
                    if (age_t.getMinutes() > timeout) {
                        //Werte sind zu alt
                        setState(validStateName, false);
                    } else {
                        //Werte sind okay
                        setState(validStateName, true);
                    }
                });
            
            });
            

            Wie bereits erwähnt, dies ist nur eine Idee!

            Das Script maverick.py wertet die Temperaturen manchmal nicht richtig aus, daher kann ich nicht sagen, wie mein oben genanntes Bespiel funktioniert oder ob es dann evtl. Fehler hagelt.

            Viel Spaß!!!

            1 Antwort Letzte Antwort
            0

            Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

            Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

            Mit deinem Input könnte dieser Beitrag noch besser werden 💗

            Registrieren Anmelden
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            297

            Online

            32.8k

            Benutzer

            82.9k

            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