Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

[Vorlage] Heizungsthermostatsteuerung 2.1 - Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascripttemplateheatingclimate
1.1k Beiträge 115 Kommentatoren 396.1k Aufrufe 61 Watching
  • Ä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.
  • I Offline
    I Offline
    iobroker_Alex
    schrieb am zuletzt editiert von
    #1066

    @looxer01: Habe nen Fehler in der aktuellen Version gefunden:

    Dein Heizungsskript nutze ich ausschließlich für nicht HM Geräte. In meinem Fall: MAX! Radiatoren mit Xiaomi Fensterkontakten. Ich habe im Skript drei Radiatoren mit einem Fensterkontakt angelegt beim Raum: Schlafzimmer und nochmal zwei Radiatoren mit einem Fensterkontakt für das Badezimmer. Die Zeitsteuerung funktioniert normal. Was nicht funktioniert ist das absenken der Temperatur bei geöffnetem Fenster. Und zwar wird nur das Thermostat im definierten Raum abgesenkt, welches als erstes im Skript erwähnt wird. Alle weiteren Thermostate bleiben auf dem Wert gemäß Zeitsteuerung. Fazit: Die Verknüpfung zwischen Nicht HM Fensterkontakten und Nicht HM Thermostaten ist nicht sauber im Skript. Das Skript ist ansonsten der Hammer. Wäre für alle nicht HM-Nutzer super, wenn es weiterentwickelt wird...

    PS: Der Fehler tritt nur in der aktuellen Version auf. In der Version Version 2.01 vom 31.10.2018 funktioniert es einwandfrei.

    1 Antwort Letzte Antwort
    0
    • Beliar_666B Offline
      Beliar_666B Offline
      Beliar_666
      schrieb am zuletzt editiert von
      #1067

      Ich glaube @looxer01 hat dem Forum den Rücken gekehrt, er war seit Februar nicht mehr hier. Wäre ja schön wenn jemand hier weiterentwickeln würde.... 😞

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        Muchul
        schrieb am zuletzt editiert von
        #1068

        Noch besser wäre, wenn jemand einen Adapter daraus machen könnte.

        C 1 Antwort Letzte Antwort
        0
        • M Muchul

          Noch besser wäre, wenn jemand einen Adapter daraus machen könnte.

          C Offline
          C Offline
          Conquest
          schrieb am zuletzt editiert von
          #1069

          @Muchul sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

          Noch besser wäre, wenn jemand einen Adapter daraus machen könnte.

          Hier ist schon was in Planung hoffe ich.
          https://www.google.com/url?sa=t&source=web&rct=j&url=https://forum.iobroker.net/topic/22579/adapter-heatingcontrol&ved=2ahUKEwi73_ydsMbiAhWwMewKHTsoBbsQFjAAegQIAhAB&usg=AOvVaw1SN_Ipx4vpJA-t60IPuxsQ

          Das Script läuft bei mir zwar noch aber nicht so richtig rund.

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            Muchul
            schrieb am zuletzt editiert von
            #1070

            Hört sich gut an. Mal abwarten ob sich das auch für andere Thermostate entwickelt.

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              Angora
              schrieb am zuletzt editiert von
              #1071

              Hey, ich versuche mich auch gerade an dem Skript, komme aber über eine Fehlermeldung nicht hinaus. Weiß einer von euch vielleicht wo die herkommen bzw. wie ich die wieder los werden kann?

              21:49:57.196	warn	javascript.0 script.js.common.Heizungssteuerung_1: TypeScript compilation had errors: var fs = require('fs'); // enable write fuer externes log ^ ERROR: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i @types/node`. LoopRooms(); // Ablauflogik entlang der gefundenen Thermostate fuer alle Raeume ^ ERROR: Expected 1 arguments, but got 0. ProfilName = UseEventG_Profil.replace("<ProfilNummer>", i); ^ ERROR: No overload matches this call. The last overload gave the following error. Argument of type 'number' is not assignable to parameter of type '(substring: string, ...args: any[]) => string'. for (var roomName in rooms) { ^ ERROR: Cannot find name 'rooms'. TriggerUpdate(); ^ ERROR: Expected 2 arguments, but got 0. TriggerUpdate(); ^ ERROR: Expected 2 arguments, but got 0. for (var roomName in rooms) { ^ ERROR: Cannot find name 'rooms'. TriggerUpdate(roomName); ^ ERROR: Expected 2 arguments, but got 1. LoopRooms(); ^ ERROR: Expected 1 arguments, but got 0. else if (roomUpdateDelay.all) { // Raum gesetzt aber ein Timeout für alle räume läuft schon, also bleibt es dabei ^ ERROR: Property 'all' does not exist on type '{}'. case "any": subscribeObj.change = "any"; ^ ERROR: Property 'change' does not exist on type '{ id: any; }'. rooms = {}; ^ ERROR: Cannot find name 'rooms'. rooms[roomName] = true; ^ ERROR: Cannot find name 'rooms'. rooms[roomName] = true; ^ ERROR: Cannot find name 'rooms'. for (roomName in rooms) { // suche Sensoren in allen Räumen mit mind einem Kontroll-Gerät ^ ERROR: Cannot find name 'rooms'. for (var d in rooms){ ^ ERROR: Cannot find name 'rooms'. for (roomName in rooms) { // loop ueber all Raeume ^ ERROR: Cannot find name 'rooms'. for (var x in SensorList ) { // loop über all Sensoren des Raumes ^ ERROR: Subsequent variable declarations must have the same type. Variable 'x' must be of type 'any', but here has type 'string'. for (roomName in rooms) { // loop ueber all Raeume ^ ERROR: Cannot find name 'rooms'. for (roomName in rooms) { // loop ueber all Raeume ^ ERROR: Cannot find name 'rooms'. Did you mean 'room'? var ActiveRoomProfile = ActiveProfile(room); // Ermittlung des aktiven Raumprofilsfunction ManAdjustments(room, id) { ^ ERROR: Expected 2 arguments, but got 1. var NewCurrSollTemp = OverruleSollTemp (room,ActiveRoomProfile,SelectSwitchTime (room, ActiveRoomProfile, "CurrSollTemp"),id); // NEU -- ermittellt die aktuell zu erwartende Solltemperatur ^ ERROR: Expected 4 arguments, but got 3. var NewCurrTimeSlot = OverruleSollTemp (room,ActiveRoomProfile,SelectSwitchTime (room, ActiveRoomProfile, "CurrSlot"),id); // NEU -- // NEU -- ermittellt den aktuellen Timeslot für zu erwartende Solltemperatur ^ ERROR: Expected 4 arguments, but got 3. var NextTimeSlot = OverruleSollTemp (room,ActiveRoomProfile,SelectSwitchTime (room, ActiveRoomProfile, "NextSlot"),id); // NEU -- ermittellt den nächsten Timeslot für die nächste zu erwartende Solltemperatur ^ ERROR: Expected 4 arguments, but got 3. var NextSollTemp = OverruleSollTemp (room,ActiveRoomProfile,SelectSwitchTime (room, ActiveRoomProfile, "NextSollTemp"),id); // NEU -- ermittellt die nächste zu erwartende Solltemperatur ^ ERROR: Expected 4 arguments, but got 3. bisSetTimeMilliSek = SelectSwitchTime (room, ActiveRoomProfile, "CurrSlotEnde"); ^ ERROR: Expected 4 arguments, but got 3. ActiveRoomProfile = ActiveProfile(roomName); // Ermittlung des aktiven Raumprofils ^ ERROR: Expected 2 arguments, but got 1. for (var roomCheck in rooms) { // loop ueber all Raeume ^ ERROR: Cannot find name 'rooms'. TriggerUpdate(roomName); ^ ERROR: Expected 2 arguments, but got 1. weekday = DetermineSchedule(room, weekday, RaumProfil); // tatsächlicher weekday wird uebersteuert, wenn ein "WieVortag" vorkommt ^ ERROR: Expected 4 arguments, but got 3. if (!FeiertagMorgenChck& getState(StateFeiertagHeute).val ) { // Heute ist Feiertag ^ ERROR: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. ProfilName = UseEventG_Profil.replace("<ProfilNummer>", i); ^ ERROR: No overload matches this call. The last overload gave the following error. Argument of type 'number' is not assignable to parameter of type '(substring: string, ...args: any[]) => string'.
              21:49:57.196	info	javascript.0 script.js.common.Heizungssteuerung_1: Routine GetDevices Devices initialisiert
              21:49:57.196	info	javascript.0 script.js.common.Heizungssteuerung_1: registered 0 subscriptions and 0 schedules
              21:49:59.208	info	javascript.0 script.js.common.Heizungssteuerung_1: Heizungsscript verarbeitung benutzt Trigger und Events
              21:49:59.208	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:365:17)
              21:49:59.209	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:373:17)
              21:49:59.209	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:791:57)
              21:49:59.209	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
              21:49:59.210	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:792:13)
              21:49:59.210	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
              21:49:59.210	warn	javascript.0 at setOwnState (script.js.common.Heizungssteuerung_1:501:5)
              21:49:59.210	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:804:5)
              21:49:59.210	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
              21:49:59.211	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1909:9)
              21:49:59.211	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
              21:49:59.211	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
              21:49:59.211	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1918:9)
              21:49:59.211	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
              21:49:59.211	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
              21:49:59.211	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1926:9)
              21:49:59.211	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
              21:49:59.212	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
              21:49:59.212	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1933:9)
              21:49:59.212	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
              21:49:59.212	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
              21:49:59.212	warn	javascript.0 at SetEventGlobalParameter (script.js.common.Heizungssteuerung_1:1941:9)
              21:49:59.212	warn	javascript.0 at LoopRooms (script.js.common.Heizungssteuerung_1:805:5)
              21:49:59.212	warn	javascript.0 at Object.<anonymous> (script.js.common.Heizungssteuerung_1:433:9)
              
              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                MyMeyer
                schrieb am zuletzt editiert von MyMeyer
                #1072

                Hallo zusammen,

                wenn ich das Script zum ersten mal startet, bekomme ich diese Fehlermeldung !


                javascript.1 2019-10-02 20:37:07.677 info Stop script script.js.Heizung.Heizplan
                javascript.1 2019-10-02 20:37:04.475 error at ContextifyScript.Script.runInContext (vm.js:59:29)
                javascript.1 2019-10-02 20:37:04.475 error at script.js.Heizung.Heizplan:392:1
                javascript.1 2019-10-02 20:37:04.475 error at initializeData (script.js.Heizung.Heizplan:399:5)
                javascript.1 2019-10-02 20:37:04.475 error at getDevices (script.js.Heizung.Heizplan:642:20)
                javascript.1 2019-10-02 20:37:04.474 error at getEnums (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1569:53)
                javascript.1 2019-10-02 20:37:04.474 error TypeError: Cannot read property 'common' of undefined
                javascript.1 2019-10-02 20:37:04.474 error ^
                javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],
                javascript.1 2019-10-02 20:37:04.474 error script.js.Heizung.Heizplan: /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1569
                javascript.1 2019-10-02 20:37:04.473 info Start javascript script.js.Heizung.Heizplan

                Also bis hier geht es und dann ist Schluss ehrlich gesagt weiß ich jetzt auch nicht weiter.


                avascript.1 2019-10-02 23:57:00.011 warn at Timer.listOnTimeout (timers.js:290:5)
                javascript.1 2019-10-02 23:57:00.010 warn at tryOnTimeout (timers.js:323:5)
                javascript.1 2019-10-02 23:57:00.010 warn at ontimeout (timers.js:511:34)
                javascript.1 2019-10-02 23:57:00.010 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1888:34)
                javascript.1 2019-10-02 23:57:00.010 warn at Object.<anonymous> (script.js.common.Heizplan:431:17)
                javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
                javascript.1 2019-10-02 23:57:00.009 info script.js.common.Heizplan: Heizungsscript verarbeitung benutzt Trigger und Events
                javascript.1 2019-10-02 23:56:58.009 info script.js.common.Heizplan: registered 0 subscriptions and 0 schedules
                javascript.1 2019-10-02 23:56:58.008 info script.js.common.Heizplan: Routine GetDevices Devices initialisiert
                javascript.1 2019-10-02 23:56:58.008 info script.js.common.Heizplan: Liste der Thermostate in der Control Tabelle
                javascript.1 2019-10-02 23:56:57.938 info script.js.common.Heizplan: Gibt es ein zugeordnetes Gerät für den Raum Wohnzimmer wird jetzt ueberprueft

                Was ist noch falsch ? 😔

                MyMeyer

                >>> Hardware: Intel I5 mit ****Debian ProxMox OS: Debian **** <<< >>> Network with UniFi <<<
                >>> HomeMatic CCU-2 (Wired und Funk) / Philips HUE / Echo.DOT / Echo.SHOW / Xiaomi Smart-Home / Xiaomi Robot Vacuum Cleaner / Synology DS 918+ / Shelly 1&2 <<<

                A 1 Antwort Letzte Antwort
                0
                • M MyMeyer

                  Hallo zusammen,

                  wenn ich das Script zum ersten mal startet, bekomme ich diese Fehlermeldung !


                  javascript.1 2019-10-02 20:37:07.677 info Stop script script.js.Heizung.Heizplan
                  javascript.1 2019-10-02 20:37:04.475 error at ContextifyScript.Script.runInContext (vm.js:59:29)
                  javascript.1 2019-10-02 20:37:04.475 error at script.js.Heizung.Heizplan:392:1
                  javascript.1 2019-10-02 20:37:04.475 error at initializeData (script.js.Heizung.Heizplan:399:5)
                  javascript.1 2019-10-02 20:37:04.475 error at getDevices (script.js.Heizung.Heizplan:642:20)
                  javascript.1 2019-10-02 20:37:04.474 error at getEnums (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1569:53)
                  javascript.1 2019-10-02 20:37:04.474 error TypeError: Cannot read property 'common' of undefined
                  javascript.1 2019-10-02 20:37:04.474 error ^
                  javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],
                  javascript.1 2019-10-02 20:37:04.474 error script.js.Heizung.Heizplan: /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1569
                  javascript.1 2019-10-02 20:37:04.473 info Start javascript script.js.Heizung.Heizplan

                  Also bis hier geht es und dann ist Schluss ehrlich gesagt weiß ich jetzt auch nicht weiter.


                  avascript.1 2019-10-02 23:57:00.011 warn at Timer.listOnTimeout (timers.js:290:5)
                  javascript.1 2019-10-02 23:57:00.010 warn at tryOnTimeout (timers.js:323:5)
                  javascript.1 2019-10-02 23:57:00.010 warn at ontimeout (timers.js:511:34)
                  javascript.1 2019-10-02 23:57:00.010 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1888:34)
                  javascript.1 2019-10-02 23:57:00.010 warn at Object.<anonymous> (script.js.common.Heizplan:431:17)
                  javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
                  javascript.1 2019-10-02 23:57:00.009 info script.js.common.Heizplan: Heizungsscript verarbeitung benutzt Trigger und Events
                  javascript.1 2019-10-02 23:56:58.009 info script.js.common.Heizplan: registered 0 subscriptions and 0 schedules
                  javascript.1 2019-10-02 23:56:58.008 info script.js.common.Heizplan: Routine GetDevices Devices initialisiert
                  javascript.1 2019-10-02 23:56:58.008 info script.js.common.Heizplan: Liste der Thermostate in der Control Tabelle
                  javascript.1 2019-10-02 23:56:57.938 info script.js.common.Heizplan: Gibt es ein zugeordnetes Gerät für den Raum Wohnzimmer wird jetzt ueberprueft

                  Was ist noch falsch ? 😔

                  A Offline
                  A Offline
                  Adnim
                  schrieb am zuletzt editiert von
                  #1073

                  @MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                  javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
                  javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],

                  da sind noch ein paar sachen nicht richtig angegeben/abgeschaltet? hast du das laut der anleitung gemacht?

                  alls die Thermostate/Sensoren nicht eingelesen werden, dann gibt es vermutlich Ungereimtheiten beim SetUp der Räume/Gewerke. Es empfiehlt sich folgende Vorgehensweise:

                  1. Überprüfen, dass die Thermostate / Sensoren in der CCU wirklich den richtigen Gewerken und Räumen zugeordnet sind

                  2. Überprüfen, dass in den ioBroker Aufzählungen (rooms und functions) die Räume und Gewerke gelistet sind. Irgendwelche $functions oder $rooms sollten nicht auftauchen.

                  3. Bei Ungereimtheiten in den Aufzählungen könnt ihr versuchen manuell zu korrigieren. Wenn bei den Aufzählungen nur CCU Räume und Gewerke vorhanden sind, dann empfiehlt sich einmal die rooms und functions komplett zu loeschen.

                  4. nachdem geändert wurde muss der REGA adapter und auch die HM-rpc Adapter neu geladen werden ( bei den Instanzen). Bitte zuerst den REGA Adapter starten und mindestens 30 Sekunden warten. Dann erst die RPC Adapter starten. Falls das nicht klappt bitte ioBroker neu starten

                  M 1 Antwort Letzte Antwort
                  0
                  • A Adnim

                    @MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                    javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
                    javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],

                    da sind noch ein paar sachen nicht richtig angegeben/abgeschaltet? hast du das laut der anleitung gemacht?

                    alls die Thermostate/Sensoren nicht eingelesen werden, dann gibt es vermutlich Ungereimtheiten beim SetUp der Räume/Gewerke. Es empfiehlt sich folgende Vorgehensweise:

                    1. Überprüfen, dass die Thermostate / Sensoren in der CCU wirklich den richtigen Gewerken und Räumen zugeordnet sind

                    2. Überprüfen, dass in den ioBroker Aufzählungen (rooms und functions) die Räume und Gewerke gelistet sind. Irgendwelche $functions oder $rooms sollten nicht auftauchen.

                    3. Bei Ungereimtheiten in den Aufzählungen könnt ihr versuchen manuell zu korrigieren. Wenn bei den Aufzählungen nur CCU Räume und Gewerke vorhanden sind, dann empfiehlt sich einmal die rooms und functions komplett zu loeschen.

                    4. nachdem geändert wurde muss der REGA adapter und auch die HM-rpc Adapter neu geladen werden ( bei den Instanzen). Bitte zuerst den REGA Adapter starten und mindestens 30 Sekunden warten. Dann erst die RPC Adapter starten. Falls das nicht klappt bitte ioBroker neu starten

                    M Offline
                    M Offline
                    MyMeyer
                    schrieb am zuletzt editiert von MyMeyer
                    #1074

                    @Adnim sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                    @MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                    javascript.1 2019-10-02 23:57:00.010 warn getState "javascript.1.Heizung.Heizplan.GlobaleParameter.ICAL-Events_Aktiv" not found (3)
                    javascript.1 2019-10-02 20:37:04.474 error members: (objects[enums[i]].common) ? objects[enums[i]].common.members : [],

                    da sind noch ein paar sachen nicht richtig angegeben/abgeschaltet? hast du das laut der anleitung gemacht?

                    alls die Thermostate/Sensoren nicht eingelesen werden, dann gibt es vermutlich Ungereimtheiten beim SetUp der Räume/Gewerke. Es empfiehlt sich folgende Vorgehensweise:

                    1. Überprüfen, dass die Thermostate / Sensoren in der CCU wirklich den richtigen Gewerken und Räumen zugeordnet sind

                    2. Überprüfen, dass in den ioBroker Aufzählungen (rooms und functions) die Räume und Gewerke gelistet sind. Irgendwelche $functions oder $rooms sollten nicht auftauchen.

                    3. Bei Ungereimtheiten in den Aufzählungen könnt ihr versuchen manuell zu korrigieren. Wenn bei den Aufzählungen nur CCU Räume und Gewerke vorhanden sind, dann empfiehlt sich einmal die rooms und functions komplett zu loeschen.

                    4. nachdem geändert wurde muss der REGA adapter und auch die HM-rpc Adapter neu geladen werden ( bei den Instanzen). Bitte zuerst den REGA Adapter starten und mindestens 30 Sekunden warten. Dann erst die RPC Adapter starten. Falls das nicht klappt bitte ioBroker neu starten

                    Hi so sieht es aktuell aus.
                    zu Punkt 1 habe ich bereits mehrmals gemacht. Ist i.o.
                    zu Punkt 2 Irgendwas mit "$" habe ich nicht in der Auflistung.
                    zu Punkt 3 Habe ich auch schon gemacht. Alles gelöscht.
                    zu Punkt 4 IOBroker neustart habe ich bis jetzt nicht gemacht. Das werde ich jetzt noch mal testen. Und mich dann wieder melden mit neuen Infos 🙂 Hoffentlich positiv.
                    Gewerke:
                    07ff4238-29c7-4b48-b9f4-81fdc4fe64cb-image.png
                    Räume:
                    88a946bd-ad70-4f23-8b1b-158816253617-image.png

                    [EDIT] So ich habe mein Problem erst mal gefunden. 🙂 Lag an Gewerke ! Dann wollen wir uns mal den Rest anschauen.

                    MyMeyer

                    >>> Hardware: Intel I5 mit ****Debian ProxMox OS: Debian **** <<< >>> Network with UniFi <<<
                    >>> HomeMatic CCU-2 (Wired und Funk) / Philips HUE / Echo.DOT / Echo.SHOW / Xiaomi Smart-Home / Xiaomi Robot Vacuum Cleaner / Synology DS 918+ / Shelly 1&2 <<<

                    D 1 Antwort Letzte Antwort
                    0
                    • dsiggiD Offline
                      dsiggiD Offline
                      dsiggi
                      schrieb am zuletzt editiert von dsiggi
                      #1075

                      Hallo zusammen,
                      erst mal danke an @looxer01 für das super Script.
                      Leider habe ich ein kleines Problem. Das Script erkennt nu die Heizung in meinem Wohnzimmer.

                      In meinem Wohnzimmer habe ich ein HmIP-eTRV-2 und im Bad sowie Schlafzimmer je ein HM-CC-RT-DN.

                      Die Thermostate sin sauber den Räumen und dem Gewerk zugeordnet.

                      Das Script findet aber nur das Thermostat im Wohnzimmer und legt dafür Datenpunkte an.

                      Ich hab mir zum testen mal den Programmcode der nach den Thermostaten sucht in ein externes Script gepackt und dort ausgeführt.

                      var ThermostatTypeTab = [];
                      ThermostatTypeTab[0]  = ['hm-rpc.1.',  'HM-TC-IT-WM-W-EU', 'Wandthermostat (neu)'       ,'WT',   '2.SET_TEMPERATURE'      ,   false,        '2.MANU_MODE',              true,                  '1.TEMPERATURE',             '2.CONTROL_MODE',           12,                                            0];
                      ThermostatTypeTab[1]  = ['hm-rpc.1.',  'HM-CC-TC'        , 'Wandthermostat (alt)'       ,'WT',   '2.SETPOINT'             ,   false,        false,                      false,                 '1.TEMPERATURE',              false,                     12,                                            0];
                      ThermostatTypeTab[2]  = ['hm-rpc.1.',  'HM-CC-RT-DN'     , 'Heizkoerperthermostat(neu)' ,'HT',   '4.SET_TEMPERATURE'      ,   false,        '4.MANU_MODE',              true,                  '4.ACTUAL_TEMPERATURE',      '4.CONTROL_MODE',           12,                                            0];
                      ThermostatTypeTab[3]  = ['hm-rpc.0.',  'HmIP-eTRV'       , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           false,                 '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                      ThermostatTypeTab[4]  = ['hm-rpc.0.',  'HmIP-WTH'        , 'Wandthermostat(HMIP)'       ,'IPWT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           true,                  '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                      ThermostatTypeTab[5]  = ['hm-rpc.0.',  'HmIP-WTH-2'      , 'Wandthermostat(HMIP)'       ,'IPWT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           false,                 '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                      ThermostatTypeTab[6]  = ['hm-rpc.0.',  'HmIP-STH'        , 'Wandthermostat(HMIP)'       ,'IPWT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           true,                  '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                      ThermostatTypeTab[7]  = ['hm-rpc.0.',  'HmIP-STHD'       , 'Wandthermostat(HMIP)'       ,'IPWT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           true,                  '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                      ThermostatTypeTab[8]  = ['hm-rpc.0.',  'HmIP-eTRV-2'     , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE',   false,        '1.CONTROL_MODE',           false,                 '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                      ThermostatTypeTab[9]  = ['hm-rpc.0.',  'HmIP-eTRV-B'     , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE',   false,        '1.SET_POINT_MODE',         true,                  '1.ACTUAL_TEMPERATURE',      '1.SET_POINT_MODE',         12,                                            0];
                      ThermostatTypeTab[10] = ['hm-rpc.0.',  'HmiP-BWTH'       , 'Heizkoerperthermostat(HMIP)','IPWT', '1.SET_POINT_TEMPERATURE',   true,         '1.CONTROL_MODE',           false,                 '1.ACTUAL_TEMPERATURE',      '1.CONTROL_MODE',           12,                                            0];
                      
                      var HeizungGewerk           = "Heizung";        //  diesem Gewerk muessen alle Thermostate zugeordnet sein.
                      
                      var allRooms = getEnums('rooms');  // Lade alle Raeume
                      var rooms = {};
                      
                      // jetzt Thermostate einlesen
                      // Lade alle Raeume
                      for (var i in allRooms) {  // loop ueber alle Raeume
                          var roomName = allRooms[i].name;
                      
                          for (x in ThermostatTypeTab) {
                              $('channel[state.id=*.' + ThermostatTypeTab[x][4] + '] (rooms=' + roomName + ') (functions=' + HeizungGewerk + ') ').each(function (id, i) {
                                  log("Ein Thermostat wurde im Raum " + roomName + " gefunden.");
                              });
                          };
                      };
                      

                      Das ist die Ausgabe davon:

                      3.10.2019, 12:47:36.836	[info ]: javascript.1 Start javascript script.js.Heizung.Test
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Badezimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Schlafzimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: Ein Thermostat wurde im Raum Wohnzimmer gefunden.
                      3.10.2019, 12:47:36.836	[info ]: javascript.1 script.js.Heizung.Test: registered 0 subscriptions and 0 schedules
                      3.10.2019, 12:47:38.253	[info ]: javascript.1 Stop script script.js.Heizung.Test
                      

                      Es werden also in jeden Raum Thermostate gefunden.
                      Ich habe dann im Srcript von @looxer01 nach Zeile 657 mal eine Debug-Ausgabe eingefügt.

                          for (x in ThermostatTypeTab){  // loop ueber die moeglichen Thermostattypen
                                  hmrpc = ThermostatTypeTab[x][0];
                                  devTypeThermTab = ThermostatTypeTab[x][1].toUpperCase();
                                  StateDP = ThermostatTypeTab[x][4];
                                  $('channel[state.id=*.' + ThermostatTypeTab[x][4] + '] (rooms=' + roomName + ') (functions=' + HeizungGewerk + ') ').each(function (id, i) {
                                      log("Ein Thermostat wurde im Raum " + roomName + "gefunden")
                                      idExtract = id.substr(0,id.length - StateDP.length - 1);
                                      fullname = getObject(id).common.name;
                                      devtype = getObject(idExtract).native.TYPE.toUpperCase();
                      
                      12:51:48.079	info	javascript.0 Start javascript script.js.Heizung.Heizungssteuerung
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Gibt es ein zugeordnetes Gerät für den Raum Badezimmer wird jetzt ueberprueft
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Gibt es ein zugeordnetes Gerät für den Raum Schlafzimmer wird jetzt ueberprueft
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Gibt es ein zugeordnetes Gerät für den Raum Wohnzimmer wird jetzt ueberprueft
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Routine getdevice fuer Wohnzimmer
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Routine GetDevices fuer HM Thermostate Wohnzimmer - hm-rpc.0.,HmIP-eTRV-2,Heizkoerperthermostat(HMIP),IPHT,1.SET_POINT_TEMPERATURE,false,1.CONTROL_MODE,false,1.ACTUAL_TEMPERATURE,1.CONTROL_MODE,12,0
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                      12:51:48.079	info	javascript.0 script.js.Heizung.Heizungssteuerung: Ein Thermostat wurde im Raum Wohnzimmergefunden
                      

                      Und siehe da, außer im Raum "Wohnzimmer" wird der Code her nicht ausgeführt.
                      Hat hier jemand eine Idee?

                      EDIT:
                      Ich habe mal das HMIP-Thermostat aus dem Raum "Wohnzimmer" entfernt und dem Raum "Schlafzimmer" hinzugefügt. Jetzt findet das Script im Schlafzimmer das HMIP-Thermostat aber die anderen beiden immer noch nicht.
                      Scheint wohl irgendwie mit dem Thermostattyp zusammen zu hängen.

                      Gruß,
                      dsiggi

                      1 Antwort Letzte Antwort
                      0
                      • M Offline
                        M Offline
                        MyMeyer
                        schrieb am zuletzt editiert von
                        #1076

                        Hallo zusammen,

                        kann mir mal jemand Hilfestellung zu den Fensterkontakten vom MiHome liefern ? Ich habe jetzt 2 Stunden gesucht , komme aber nicht weiter.

                        Wie kann ich die Xiaomi Fensterkontakte ins Script einbinden für die Steuerung ?

                        Wahrscheinlich habe ich schon zuviel gelesen und überlesen. 😁

                        MyMeyer

                        >>> Hardware: Intel I5 mit ****Debian ProxMox OS: Debian **** <<< >>> Network with UniFi <<<
                        >>> HomeMatic CCU-2 (Wired und Funk) / Philips HUE / Echo.DOT / Echo.SHOW / Xiaomi Smart-Home / Xiaomi Robot Vacuum Cleaner / Synology DS 918+ / Shelly 1&2 <<<

                        M 1 Antwort Letzte Antwort
                        0
                        • M MyMeyer

                          Hallo zusammen,

                          kann mir mal jemand Hilfestellung zu den Fensterkontakten vom MiHome liefern ? Ich habe jetzt 2 Stunden gesucht , komme aber nicht weiter.

                          Wie kann ich die Xiaomi Fensterkontakte ins Script einbinden für die Steuerung ?

                          Wahrscheinlich habe ich schon zuviel gelesen und überlesen. 😁

                          M Offline
                          M Offline
                          MyMeyer
                          schrieb am zuletzt editiert von
                          #1077

                          @MyMeyer sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                          Hallo zusammen,

                          kann mir mal jemand Hilfestellung zu den Fensterkontakten vom MiHome liefern ? Ich habe jetzt 2 Stunden gesucht , komme aber nicht weiter.

                          Wie kann ich die Xiaomi Fensterkontakte ins Script einbinden für die Steuerung ?

                          Wahrscheinlich habe ich schon zuviel gelesen und überlesen. 😁

                          HAllo, sehe ich das richtige das ich jeden Raum Sensor (Für Fenster) dort manuell hinterlegen muss ?
                          Wie ich es unter **NoneHMSenor gemacht habe ?

                          // Tabelle der Verschlusssensoren fuer NichtHomematic Geräte
                          // 5  = wenn script die Absenktemperatur setzen soll, dann false
                          var NoneHMSenorTab = [];
                          //                  0= Raum         1 = Datenpunkt vis vor Geraet 0.RPC-Pfad    2. Datenpunkt Geraet        3. Datenpunkt FensterstatusGeraeteType  4.Verschlussstatus bei geschlossen    5. TempAbsenkung automatisch  
                          NoneHMSenorTab[0] = ['initial',     'javascript.0.Heizung.Heizplan',            'Wohnzimmer' ,              'TestZusaetzlichesFenster' ,            false,                                false,];
                          NoneHMSenorTab[1] = ['initial',     'fhem.0',                                   'OG_DU_TF' ,                'state' ,                               'closed',                             false];
                          NoneHMSenorTab[2] = ['initial',     'maxcube.0.devices',                        '',                         'contact_0a9d75',                       'opened',                             false];
                          NoneHMSenorTab[3] = ['initial',    'javascript.0.Heizung',                     'zwave1',                   'isOpen',                               'false',                             false];
                          NoneHMSenorTab[4] = ['initial',    'javascript.0.Heizung',                     'zwave1',                   '4.Fenster',                               'false',                             false];
                          **NoneHMSenorTab[5] = ['Buero',    'mihome.0.devices',                     'magnet_158d0002047172',                   'state',                               'false',                             false];**
                          
                          

                          MyMeyer

                          >>> Hardware: Intel I5 mit ****Debian ProxMox OS: Debian **** <<< >>> Network with UniFi <<<
                          >>> HomeMatic CCU-2 (Wired und Funk) / Philips HUE / Echo.DOT / Echo.SHOW / Xiaomi Smart-Home / Xiaomi Robot Vacuum Cleaner / Synology DS 918+ / Shelly 1&2 <<<

                          1 Antwort Letzte Antwort
                          0
                          • K Offline
                            K Offline
                            kaschperle83
                            schrieb am zuletzt editiert von
                            #1078

                            Ja genau. Das klappt dann aber auch 1a.
                            Ich nutze Maxthermostate und Xiaomi Fenster Sensoren schon seit zwei Jahren ohne große Problem mit diesem Script.

                            M 1 Antwort Letzte Antwort
                            0
                            • Johann DannerJ Offline
                              Johann DannerJ Offline
                              Johann Danner
                              schrieb am zuletzt editiert von
                              #1079

                              Hallo,

                              Ich probier schon einige Zeit das Script zum laufen zu bringen. Leider scheitere ich hoffnungslos.
                              Ich hab wie beschrieben und weiter oben geschrieben in der CCU die Gewerke und Räume angelegt und zugewiesen alsauch in den Aufzählungen in ioBroker.

                              Hier die CCU Gewerke:
                              ccu_gewerke.PNG

                              und die CCU Räume:
                              ccu_räume.PNG

                              weiters die ioBroker Gewerke
                              iobroker_gewerke.PNG

                              und die ioBroker Räume
                              iobroker_räume.PNG

                              und hier noch das Script mit den Einstellungen und den Warnungen.
                              scriptwarnungen.PNG

                              Ich hoffe es kann mir jemand helfen. Ich will so ein tolles Script nicht wieder entfernen. 😖

                              Danke im Voraus.

                              1 Antwort Letzte Antwort
                              0
                              • K Offline
                                K Offline
                                kaschperle83
                                schrieb am zuletzt editiert von
                                #1080

                                Versuch mal die Thermostat manuell im Script zu erfassen.
                                Ich hatte auch Probleme das nichts über Gewerke und Raum erkannt wurde. Manuelle eingetragen hat dann alles bestens funktioniert.

                                1 Antwort Letzte Antwort
                                0
                                • K kaschperle83

                                  Ja genau. Das klappt dann aber auch 1a.
                                  Ich nutze Maxthermostate und Xiaomi Fenster Sensoren schon seit zwei Jahren ohne große Problem mit diesem Script.

                                  M Offline
                                  M Offline
                                  MyMeyer
                                  schrieb am zuletzt editiert von
                                  #1081

                                  @kaschperle83 sagte in [Vorlage] Heizungsthermostatsteuerung 2.1 - Script:

                                  Ja genau. Das klappt dann aber auch 1a.
                                  Ich nutze Maxthermostate und Xiaomi Fenster Sensoren schon seit zwei Jahren ohne große Problem mit diesem Script.

                                  Hi @kaschperle83

                                  und wie hast Du mit mehren Fenster in einen Raum gemacht ? Der Raum Name soll ja nur 1x vorkommen !

                                  MyMeyer

                                  >>> Hardware: Intel I5 mit ****Debian ProxMox OS: Debian **** <<< >>> Network with UniFi <<<
                                  >>> HomeMatic CCU-2 (Wired und Funk) / Philips HUE / Echo.DOT / Echo.SHOW / Xiaomi Smart-Home / Xiaomi Robot Vacuum Cleaner / Synology DS 918+ / Shelly 1&2 <<<

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    s.reinholz
                                    schrieb am zuletzt editiert von
                                    #1082

                                    Hallo zusammen.

                                    Bin neu im Forum bzw. beschäftige mich erst seit kurzem mit dem iObrocker habe sonst alles mit FHEM gemacht. Würde jetzt aber gerne umsteigen. Jetzt meine frage: Kann ich dieses Skript auch benutzen wenn ich keine CCU besitze? Habe alles über einen RPI und dem HM_Lan Adapter verbunden.

                                    1 Antwort Letzte Antwort
                                    0
                                    • Johann DannerJ Offline
                                      Johann DannerJ Offline
                                      Johann Danner
                                      schrieb am zuletzt editiert von Johann Danner
                                      #1083

                                      Hallo,

                                      Ich hab hier geschrieben, dass ich das Script nicht zum laufen bringe.

                                      STATUSÄNDERUNG! ES LÄUFT! 😊

                                      Hier meine Änderung.

                                      Da bei allen Beschreibungen immer die Rede von Gewerken ist, habe ich in ioBroker eine neue Haupt-Aufzählung erstellt die so heißt: enum.gewerke.Heizung

                                      Funktionierende Version:
                                      Jetzt hab ich unter den Funktionen eine neue Aufzählung erstellt die so heißt: enum.functions.Heizung

                                      Ich hoffe dies hilft jemanden.

                                      mfG
                                      Johann

                                      1 Antwort Letzte Antwort
                                      0
                                      • Johann DannerJ Offline
                                        Johann DannerJ Offline
                                        Johann Danner
                                        schrieb am zuletzt editiert von
                                        #1084

                                        Leider hab ich jetzt beim importieren von den Views probleme.

                                        Beim Import kommt 3 mal diese Fehlermeldung: Cannot render view HZ_SZ. Invalid settings
                                        (HZ_SZ) ist der View-Name.

                                        Fehlen hier Adapter ? z.B. Visualisierungsadapter ?
                                        Wenn ja, welche?
                                        Oder was kann Schuld an dem Problem sein?

                                        Danke für die Hilfe.

                                        1 Antwort Letzte Antwort
                                        0
                                        • Johann DannerJ Offline
                                          Johann DannerJ Offline
                                          Johann Danner
                                          schrieb am zuletzt editiert von
                                          #1085

                                          Fehler selber entdeckt.

                                          Das sind NICHT die Views! Man muss diese als Widgets importieren.
                                          Da ist wohl eine falsche Benennung Schuld. In der Doku zur View Erstellung stehts richtig.

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          376

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe