Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. WIFFI-WZ 2.0

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    WIFFI-WZ 2.0

    This topic has been deleted. Only users with topic management privileges can see it.
    • ruhr70
      ruhr70 last edited by

      Skript zum Abfragen der Messwerte des WIFFI-wz 2.0

      Das ioBroker Skript zum WIFFI-wz:

      ! ```
      var request = require("request"); ! var pfad = "WIFFI" + "."; var url = 'http://172.16.130.195/?json:'; ! // TODO: // ! function timeLastData() { return formatDate(new Date(), "DD.MM, hh:mm:ss"); } ! function parseJson(text) { if (text === "") return {}; try { json = JSON.parse(text); } catch (ex) { json = {}; } if(!json) json = {}; return json; } ! function readJson(url, callback) { request(url, function (err, state, body){ if (body) { var json = parseJson(body); callback(null, json); } else { var error = "(" + err + ") ERROR bei Abfrage von: " + url; log(error, "warn"); callback(error, null); } }); } ! function readVars() { readJson(url, function(err,json) { if(!err) { var myJson = json; var dPname, init; var anzahlVars = myJson.vars.length; for (var i = 1; i < anzahlVars; i++) { dPname = pfad + myJson.vars[i].homematic_name; init = myJson.vars[i].value; setState(dPname, init); } for (var systeminfo in myJson.Systeminfo) { dPname = pfad + "Systeminfo." + systeminfo; init = myJson.Systeminfo[systeminfo]; setState(dPname, init); } setState(pfad + "LetzteAbfrage",timeLastData()); var statusNe = getState(pfad + "Last_State_Count").val; if (statusNe < 0) { setState(pfad + "Last_State_Count",0); } else { setState(pfad + "Last_State_Count",statusNe + 1); } log("WIFFI Daten aktualisiert: " + url,"debug"); } else { log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn"); if (statusNe > 0) { setState(pfad + "Last_State_Count",0); } else { setState(pfad + "Last_State_Count",statusNe - 1); } } }); } ! function createDpFromJson(myJson) { var dpname = ""; var name = ""; var forceCreation = true; var common; var init; var type, desc, unit; var anzahlVars = myJson.vars.length; for (var i = 1; i < anzahlVars; i++) { dPname = pfad + myJson.vars[i].homematic_name; init = myJson.vars[i].value; type = myJson.vars[i].type; desc = myJson.vars[i].desc; name = desc; unit = myJson.vars[i].unit.replace('grad','°'); common = '{"desc":"' + desc + '","type":"' + type + '","unit":"' + unit + '","role":"value"' +',"name":"' + name + '"}'; common = JSON.parse(common); createState(dPname, init , forceCreation, common); //createState(dPname, init); log("neuer Datenpunkt: " + dPname + ": " + init +", common: " + common,"info"); } for (var systeminfo in myJson.Systeminfo) { dPname = pfad + "Systeminfo." + systeminfo; init = myJson.Systeminfo[systeminfo]; common = '{"name":"'+systeminfo+'","desc":"'+systeminfo+'","role":"value"}'; common = JSON.parse(common); log("neuer Datenpunkt: " + dPname + ": " + init +", common: " + common,"info"); createState(dPname, init , forceCreation, common); } createState(pfad + "System.Modultyp",myJson.modultyp); createState(pfad + "System.url",url.replace("json:","xpert:0:")); createState(pfad + "Last_State_Count",0,true); createState(pfad + "LetzteAbfrage" ,timeLastData()); createState(pfad + "Skriptstart" ,timeLastData()),true; createState(pfad + "Control_GetData",false,true, {"name":"Daten mit true manuell abrufen","type":"boolean","role":"value"}); } ! function createDp() { readJson(url, function (err,json) { if(!err) { var myJson = json; createDpFromJson(myJson); log("WIFFI Datenpunkte angelegt/aktualisiert"); } else { log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","error"); log("Keine Datenpunkte angelegt. Skript beendet","error"); return; } }); } ! function createOn() { var dpId = "javascript." + instance + "." + pfad + "Control_GetData"; on({id: dpId ,change:'any'}, function (obj) { log(obj.state.val,"warn"); if(obj.state.val) { readVars(); } }); ! schedule("*/1 * * * *", function () { // jede Minute die Werte abfragen readVars(); }); ! } ! function main() { readVars(); } ! // Skriptstart ! createDp(); setTimeout(createOn, 3000); setTimeout(main, 3000);
      ! Infos zum WIFFI-wz 2.0:
      ! (http://www.stall.biz/project/der-wiffi- ... mmersensor)
      ! Folgende Messwerte werden durch das WIFFI-wz 2.0 erzeugt:
      327_wiffi-wz.jpg
      ! Und die Datenpunkte, die das Skript in ioBroker anlegt und pflegt:
      327_iobroker_wiffi-wz.jpg
      ! Der WIFI WZ enthält folgende Sensoren:

      *   ~~[*]~~Temperatur
      *   ~~[*]~~Luftfeuchtigkeit
      *   ~~[*]~~2x Bewegungsmelder
      *   ~~[*]~~Geräuscherkennung
      *   ~~[*]~~Luftdruck
      *   ~~[*]~~Helligkeit in Lux
      >! Dazu werden vom WIFFI-wz folgende Werte errechnet:
      ~~~~*   ~~[*]~~Sonne-Elevation
      *   ~~[*]~~Sonne-Azimut
      >! **~~[b]~~Einbindung in ioBroker:[/b]**
      >! **~~[b]~~1.) wenn keine CCU vorhanden ist:[/b]**
      >! - über das Skript oben
      >! - Abfrage der Werte des WIFFIs jede Minuten
      >! - Abfrage per Control-Datenpunkt
      >! Die Werte werden jede Minute aktualisiert (für Anwendungen mit den Bewegungsmeldern ist das unter Umständen zu lange).
      >! TODO:
      >! Die Meldungen des WIFFIs (Push der Messwerte bei Änderung) mit ioBroker verarbeiten. Aktueller Stand. Ich kann zwar die stündlcihen Statusmeldungen empfangen und verarbeiten, nicht aber die Messwerte, obwohl sie in identischer Form geschickt werden.
      >! **~~[b]~~2\. Wenn eine CCU vorhanden ist[/b]**
      >! - Das WIFFI-wz kann per Push direkt Messwerte zur CCU schicken
      >! - dort müssen nur Systemvariablen angelegt werden, deren Namen im WIFFI angepasst werden können
      >! --------------
      >! **~~[b]~~alter Inhalt vom » 15.04.2016, 20:02[/b]**
      >! Ich habe heute den WIFFI-wz 2.0 zusammengelötet und in Betrieb genommen.
      >! [http://www.stall.biz/project/der-wiffi- ... mmersensor](http://www.stall.biz/project/der-wiffi-wz-2-0-der-wohnzimmersensor)
      >! Funktioniert wunderbar und die neun Messwerte werden automatisch in Systemvariablen in die CCU2 geschrieben.
      >! Jetzt würde ich gerne versuchen, die Werte direkt in iobroker, ohne den Umweg über die CCU2, zu verarbeiten.
      >! Zwei Wege fallen mir ein:
      >! 1.) die html Seite des WIFFI-wz 2.0 parsen
      >! 2.) die "Meldungen" des WIFFI-wz zu ioBroker statt zur CCU2 schicken und dort direkt auswerten
      >! Die 2\. Variante gefällt mir besser. Auf Anhieb bin ich leider nicht fündig geworden, auf welche Art und Weise man über Web die Systemvariablen der CC2 füllen kann. Hat da jemand Erfahrung (Port-Nummer, wie sieht die Meldung aus, um z.B. eine Systemvariable mit dem Namen **~~[b]~~wz_feuchte[/b]** in der Homematic mit einem Wert zu beschreiben?).
      >! Ich könnte jetzt mit Wireshark tragen. Denke aber, dass es hier genug Spezis gibt, die das "mal eben" beantworten können  :magreren:
      >! [EDIT]
      >! OK. Hab was gefunden.
      >! `~~[code]~~http://172.16.130.199:8181/test.exe?out=dom.GetObject(%22wz_temp%22).State(%2212%22),r)[/code]`
      >! Damit wird der Wert der Variable **~~[b]~~wz_twmp[/b]** auf den Wert **~~[b]~~12[/b]** gesetzt.
      >! Jetzt muss ich "nur" schauen, wie man das in iobroker verarbeiten kann. Eventuell den Adapter **~~[b]~~simple-api[/b]** anpassen...[/i][/i][/i][/i][/i][/i][/i]
      ```
      1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        Hi ruhr, mir fällt da noch was ein: Frag den erbauer des wiffi wz ob er die möglichkeit einbaut das ziel selber zu definieren. ioBroker hat eine Schnittstelle die nach dem selben prinzip funktioniert.

        Gesendet von meinem Jolla mit Tapatalk

        1 Reply Last reply Reply Quote 0
        • ruhr70
          ruhr70 last edited by

          @Jey Cee:

          Hi ruhr, mir fällt da noch was ein: Frag den erbauer des wiffi wz ob er die möglichkeit einbaut das ziel selber zu definieren. ioBroker hat eine Schnittstelle die nach dem selben prinzip funktioniert.

          Gesendet von meinem Jolla mit Tapatalk `

          Wie meinst Du das denn?

          Das Ziel in Form der IP kann man festlegen und die Variablennamen ebenfalls.

          Jetzt müsste man "nur" die Meldung oben annehmen und den String auswerten.

          1 Reply Last reply Reply Quote 0
          • Jey Cee
            Jey Cee Developer last edited by

            Der wiffi wz verwendet eine api der ccu2 und der teil ist nicht im wiffi wz einstellbar. IoBroker hat eine api die der ccu2 ähnelt, müsste die simple api sein.

            Gesendet von meinem Jolla mit Tapatalk

            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              Hallo ruhr70,

              das sind doch Fragen bei denen ich denke, dass Eugen die gerne beantwortet, wenn du ihn fragst.

              EDIT:

              Der Kern ist ein ESP8226-12, der sich wohl wie ein Arduino programmieren lässt (habe ich von beidem keine Ahnung)

              Habe trotzdem gegoogelt und https://www.symcon.de/forum/threads/27549-WiFi-Modul-ESP8266im ersten post eine Linksammlung gefunden, die dir vielleicht weiterhilft.

              Gruß

              Rainer

              1 Reply Last reply Reply Quote 0
              • ruhr70
                ruhr70 last edited by

                Danke für die Antworten…

                Ich war schon einen Schritt weiter.

                Der WIFFI-wz hat sich stündlich mit seiner IP beim ioBroker-Testrechner gemeldet (ich habe im WIFFI-wz die ioBroker IP eingestellt, anstatt der IP der CCU2).

                Es kam bei ioBroker auf Port 8181 folgendes an "/xy.exe?antwort=dom.GetObject("wz_ip").State("172.16.130.195")", abgefragt über ein Miniskript, welches mit dem Node Module "http" einen Mini-Webserver aufgemacht hat.

                Vom WIFFI-wz werden die Datenpunkte per http auf den Port 8181 (Homematic Skript) und er Homematic Skriptsprache übertragen.

                In der Theorie hätten auch die Werte der Messpunkte identisch ankommen müssen :? . Da ist über das Skript allerdings nichts eingetrudelt. Zu CCU2 wurden die Werte übertragen…

                ...warum "wurde"...?

                Da ich nicht wirklich weiterkam, habe ich dann die neue Firmware (30) eingespielt, die seit gestern verfügbar ist. Und das war es dann ganz mit dem WIFFI-wz 😞

                Nach Anleitung vorgegangen. Quittung mit OK und ein paar Sekunden danach wurde der WIFFI-wz in eine Dauersirene mit zwei dauerleuchtenden LEDs verwandelt. Ausser Krach und Licht macht er jetzt gar nichts mehr 😞 :shock:

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  @ruhr70:

                  Ausser Krach und Licht macht er jetzt gar nichts mehr 😞 :shock: `
                  Oh Sh….

                  Neunmalklug an:
                  ` > 16. Rückstellen in Werkszustand

                  Manchmal kann es notwendig sein, die im EEPROM abgelegten Daten zu löschen und den WIFFI-WZ in den Auslieferungszustand zu versetzen. Hierfür wird durch 1sec-Drücken des PROG-Tasters zuerst der Hotspot-Modus eingestellt, was durch 1sec- Blinken der roten LED angezeigt wird. Danach hält man den PROG-Taster solange gedrückt, bis die rote LED dauerhaft leuchtet. Jetzt werden die EEPROM-Daten gelöscht.

                  Läßt man die PROG-Taste wieder los, dann startet WIFFI neu und geht automatisch in den Hotspot-Modus, um so wieder neu an den Router angelernt zu werden.

                  Achtung: nie den PROG- und RESET-Taster gleichzeitig drücken, da das Modul dann in den Programmiermodus geht und u.U. die Firmware beschädigt wird. `
                  Das hast du natürlich längst versucht!

                  Viel Glück

                  Rainer

                  1 Reply Last reply Reply Quote 0
                  • ruhr70
                    ruhr70 last edited by

                    Danke Rainer. Bin für jeden Tipp dankbar.

                    Und ja, das hatte ich schon versucht. Habe auch brav nie beide Taster gleichzeitig gedrückt.

                    Da die rote LED nie ausgeht, hat man kein optisches Feedback, ob der Weg zu den Werkseinstellungen funktioniert. Hab es mehrmals versucht. Geht nicht mehr. Nach fünf Minuten Dauerlärm (Buzzer) musste ich auch alle weiteren Versuch einstellen (per off/on, Suche im WLAN, …). Wurde für die bessere Hälfte zu unangenehm.

                    Aber der Buzzer ist schön laut 😉

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators last edited by

                      @ruhr70:

                      Aber der Buzzer ist schön laut 😉 `

                      Wahrscheinlich der Grund dafür:

                      http://homematic-forum.de/forum/viewtop … 54#p274454

                      Auf Eugens Seite gibt es die Möglichkeit eine Nachricht zu hinterlassen - oder PN im HM-Forum - oder ganz offen im Forum Frage stellen.

                      Selbst wenn du jetzt der erste gewesen sein solltest - du wirst nicht der Letzte sein.

                      Gruß

                      Rainer

                      1 Reply Last reply Reply Quote 0
                      • ruhr70
                        ruhr70 last edited by

                        Ein kleiner Zwischenstand…

                        Es war definitiv mein Fehler 😞

                        Ich war von der Homematic so gewohnt, die gepackte Datei hochzuladen. Hier habe ich glatt überlesen, dass es die dort enthaltene *.bin sein muss. Leider habe ich zur ZIP gegriffen :shock:

                        [EDIT] Habe eine Rückmeldung erhalten, dass es eine 95% Chance gibt, es zu reparieren 🙂

                        1 Reply Last reply Reply Quote 0
                        • ruhr70
                          ruhr70 last edited by

                          Der neue Zwischenstand:

                          Mein WIFFI funktioniert wieder 🙂

                          Eugen war so nett und hat meinen Fehler beseitigt!

                          In der nächsten Firmware können die Werte des WIFFIs im JSON abgefragt werden 🙂

                          Ich schreib ein kurzes Skript, welches dann einfach mehrere WIFFIs verwalten kann, die Datenpunkte anlegt und die Werte automatisch aktualisiert.

                          Infos und Screenshots folgen.

                          1 Reply Last reply Reply Quote 0
                          • ruhr70
                            ruhr70 last edited by

                            Ich habe im ersten Post das Skript für den WIFFI-WZ 2.0 abgelegt. Erst einmal für einen (das Skript kann einfach mehrmals je WIFFI verwendet werden). Anmerkungen dazu im ersten Post.

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators last edited by

                              Hallo ruhr70,

                              ich war heute bei eugen und bin jetzt ebenfalls Besitzer eines Wiffis.

                              Habe ihn mit Eugens Hilfe auch relativ schnell in die CCU eingebunden bekommen.

                              Jetzt habe ich auch dein Skript kopiiert und gestartet - läuft.

                              Datenpunkte werden im Moment noch nicht angelegt.

                              @ruhr70:

                              Aktueller Stand. Ich kann zwar die stündlcihen Statusmeldungen empfangen und verarbeiten, nicht aber die Messwerte, obwohl sie in identischer Form geschickt werden. `
                              Eugen war der Meinung, dass du es bereits hinbekommen hättest.

                              Wenn nicht, dann bitte kurze Info, ich setze mich dann nochmal mit ihm zusammen. Oder ich bekomme ihn hier ins Forum 😉

                              @Bluefox: Solltest du das hier lesen bitte nicht in operative Hektik verfallen :!: , du hast genug andere Baustellen!

                              Gruß

                              Rainer

                              1 Reply Last reply Reply Quote 0
                              • ruhr70
                                ruhr70 last edited by

                                Hi Rainer,

                                das Skript läuft, es werden aber keine Datenpunkte angelegt?

                                Das muss eingentlich funktionieren.

                                Gesendet von iPhone mit Tapatalk

                                1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators last edited by

                                  KEINE ist vielleicht nich ganz richtig:
                                  144_wiffi_011.jpg
                                  144_wiffi_012.jpg

                                  Aber ich dachte, dass da auch ein Datenpunkt mit dem json Feld angelegt würde.

                                  Das parsen hast du ja noch auf der ToDo.

                                  Oder schickt der Wiffi die Antwort an die CCU, wenn ich diese noch im Wiffi konfiguriert habe?

                                  Geht es nicht Daten vom Wiffi an die CCU zu pushen und von ioBroker zu pollen?

                                  Gruß

                                  Rainer

                                  1 Reply Last reply Reply Quote 0
                                  • ruhr70
                                    ruhr70 last edited by

                                    das Skript legt für jeden Messwert einen Datenpunkt an und holt die Daten beim Skriptstart vom WIFFI ab.

                                    Zusätzlich werden die Daten per Schedule abgeholt.

                                    Im WIFFI kann man eine CCU IP eintragen. Dort "pusht" das WIFFI die Daten bei Änderung. Wenn Du die Variablen in der CCU angelegt hast, holt sich ioBroker sie ab (hm-rega).

                                    ich wollte noch, dass das WIFFi die Daten direkt an ioBroker schickt, wenn man als CCU IP die ioBroker IP konfiguriert. D.h. die CCU würde keine Daten mehr erhalten, sondern nur noch ioBroker.

                                    Die stündlichen "ich lebe noch" Meldungen konnte ich empfangen. Die Messwerte komischerweise noch nicht. Ab hier habe ich derzeit das Messer im Schwein stecken lassen.

                                    also was derzeit geht:

                                    Datenpunkte über das Skript anlegen lassen und per Schedule regelmäßig aktualisieren.

                                    und/oder

                                    Daten an die CCU und dann per hm-rega an ioBroker

                                    Gesendet von iPhone mit Tapatalk

                                    1 Reply Last reply Reply Quote 0
                                    • F
                                      funkleuchtturm last edited by

                                      … ich lese mit Interesse mit!

                                      Können denn die ursprünglich an die Homematic gesendeten Push Meldungen schon ausgewertet werden ( wenn natürlich anstelle der CCU-IP die IObroker-IP eingegeben ist ) ?

                                      Wenn das klappt, dann kann man ja auf das regelmässige Polling verzichten , oder ? (macht die CCU ja auch nicht!)

                                      1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators last edited by

                                        @ruhr70:

                                        also was derzeit geht:

                                        Datenpunkte über das Skript anlegen lassen und per Schedule regelmäßig aktualisieren.

                                        und/oder

                                        Daten an die CCU und dann per hm-rega an ioBroker `
                                        letzteres funktioniert.

                                        Ersteres nicht 😞

                                        Auch nicht bei restart des Skripts.

                                        Was muss ich löschen, damit das Anlegen der Variablen bei einem Neustart des Skripts neu initialisiert wird?

                                        Oder habe ich das falsche Skript?

                                        Gruß

                                        Rainer

                                        1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators last edited by

                                          Hallo Eugen!

                                          Willkommen hier im Forum.

                                          Hast du es jetzt doch noch geschafft :mrgreen:

                                          Freue mich auf weiteren Input.

                                          Gruß

                                          Rainer

                                          1 Reply Last reply Reply Quote 0
                                          • ruhr70
                                            ruhr70 last edited by

                                            @funkleuchtturm:

                                            … ich lese mit Interesse mit!

                                            Können denn die ursprünglich an die Homematic gesendeten Push Meldungen schon ausgewertet werden ( wenn natürlich anstelle der CCU-IP die IObroker-IP eingegeben ist ) ?

                                            Wenn das klappt, dann kann man ja auf das regelmässige Polling verzichten , oder ? (macht die CCU ja auch nicht!) `

                                            ne, das wird gehen, da steckt aber noch das besagte Messer. 😞

                                            kommt aber 🙂

                                            Gesendet von iPhone mit Tapatalk

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            651
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            19
                                            76
                                            11477
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo