Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Temparatur Umzug Fhem

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Temparatur Umzug Fhem

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

      Hallo alle zusammen
      Ich möchte gerne von Fhem zu Iobroker wechseln

      Ich habe hier ein Wandthermostat mit dem ich eine Infrarotpanel schalte
      In Fhem sieht das ganze so aus

      ([MAX_167fd8:temperature] < [MAX_167fd8:desiredTemperature]-0.4) (set MQTT2_DVES_B32AF6 on) DOELSEIF ([MAX_167fd8:temperature] > [MAX_167fd8:desiredTemperature]) (set MQTT2_DVES_B32AF6 off)
      

      Im Blockly hätte ich das jetzt so nachgebaut . Aber er schaltet mir zwar ein aber nicht mehr aus
      577e7380-11a6-4ddb-9ce9-4561ade9ef00-image.png

      Infrarot Badezimmer ist das Thermostat (mit Abstand)
      InfrarotBadezimmer ist ein Sonoff Basic (ohneAbstand)

      Wo hab ich denn hier den Denkfehler 🙂
      Danke

      lg
      Chris

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @nolimitek last edited by paul53

        @nolimitek
        Nicht mit Strings "true" / "false" schalten, sondern mit Logikwerten wahr / falsch.
        Es fehlt die Hysterese von 0,4 K (FHEM).

        N 1 Reply Last reply Reply Quote 0
        • N
          nolimitek @paul53 last edited by nolimitek

          @paul53 Danke für die schnelle Antwort.

          Auch mit wahr oder falsch geht es leider nicht .
          Schaltet ein aber nicht aus

          Wie kann ich denn die Hysterese in Blockly nachbilden ?

          Da habe ich dafür noch nichts gefunden

          Danke

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @nolimitek last edited by paul53

            @nolimitek sagte:

            Wie kann ich denn die Hysterese in Blockly nachbilden ?

            Blockly_temp.JPG

            @nolimitek sagte:

            InfrarotBadezimmer ist ein Sonoff Basic

            Ist "state_switch" vom Typ "boolean" ?

            N 1 Reply Last reply Reply Quote 0
            • N
              nolimitek @paul53 last edited by

              @paul53 Was meinst mit boolean ?

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @nolimitek last edited by

                @nolimitek sagte:

                Was meinst mit boolean ?

                Schau mal in die Eigenschaften des Objektes "state_switch" (Tab "Objekte", Bleistift rechts): Unter Allgemein: Steht bei Art "Logikwert" (boolean) oder "Zeichenkette" (string) ?

                N 1 Reply Last reply Reply Quote 0
                • N
                  nolimitek @paul53 last edited by

                  @paul53 steht switch . Ist aber derzeit alles vom Fhem Connector

                  lg

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @nolimitek last edited by paul53

                    @nolimitek sagte:

                    steht switch

                    Das ist die Rolle, nicht der Typ (Art).

                    @nolimitek sagte in Temparatur Umzug Fhem:

                    Ist aber derzeit alles vom Fhem Connector

                    Davon habe ich keine Ahnung.
                    Du solltest Alias-Datenpunkte verwenden, damit später der Umstieg leichter ist (keine Änderung in Skripten / Vis erforderlich)

                    N paul53 2 Replies Last reply Reply Quote 0
                    • N
                      nolimitek @paul53 last edited by

                      @paul53 Ah Sorry da steht Logikwerk

                      lg

                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @nolimitek last edited by

                        @nolimitek sagte:

                        da steht Logikwerk

                        Dann sollte mit wahr und falsch (Blockly) geschaltet werden.

                        1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @paul53 last edited by paul53

                          @paul53 sagte:

                          Alias-Datenpunkte verwenden

                          Mit folgendem Script kann man Alias-Datenpunkte erzeugen, indem die IDs, der Name, ... angepasst werden und das Script dann kurz gestartet wird:

                          // Original-Datenpunkt
                          const idOrigin = 'fhem.0.'; // ID eingeben !
                          // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt.
                          // Bei Nicht-Verwendung Leerstring '' zuweisen
                          const idRead = '';
                           
                          // Alias-Datenpunkt
                          const idAlias = 'Bad.Heizung.Infrarot';
                          var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
                          
                          // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
                          nameAlias = 'Infrarotheizung Badezimmer';
                          desc = 'per Script erstellt';
                          // typeAlias = 'boolean'; // oder 'number'
                          // read = "val == 'ON' ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
                          // write = "val ? 'ON' : 'OFF'";
                          // role = 'value';
                          // min = 0; // nur Zahlen
                          // max = 100; // nur Zahlen
                          // unit = '%'; // nur für Zahlen
                          // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                          custom = []; // verhindert doppelte Ausführung von history, ...
                          // raum = 'EG_Flur'; // Groß-/Kleinschreibung in der ID beachten !
                          // gewerk = 'Licht'; // Groß-/Kleinschreibung in der ID beachten !
                          
                          // Ab hier nichts ändern !!
                          function createAlias(idDst, idSrc, idRd) {
                             if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                             else {
                                var obj = {};
                                obj.type = 'state';
                                obj.common = getObject(idSrc).common;
                                obj.common.alias = {};
                                if(idRd) {
                                    obj.common.alias.id = {};
                                    obj.common.alias.id.read = idRd;
                                    obj.common.alias.id.write = idSrc;
                                    obj.common.read = true;
                                } else obj.common.alias.id = idSrc;
                                if(typeAlias) obj.common.type = typeAlias;
                                if(obj.common.read !== false && read) obj.common.alias.read = read;
                                if(obj.common.write !== false && write) obj.common.alias.write = write;
                                if(nameAlias) obj.common.name = nameAlias;
                                if(role) obj.common.role = role;
                                if(desc) obj.common.desc = desc;
                                if(obj.common.type == 'number') {
                                   if(min !== undefined) obj.common.min = min;
                                   if(max !== undefined) obj.common.max = max;
                                   if(unit) obj.common.unit = unit;
                                } else {
                                   if(obj.common.min !== undefined) delete obj.common.min;
                                   if(obj.common.max !== undefined) delete obj.common.max;
                                   if(obj.common.unit) delete obj.common.unit;
                                }
                                if(states) obj.common.states = states;
                                if(custom && obj.common.custom) obj.common.custom = custom;
                                obj.native = {};
                                setObject(idDst, obj, function() {
                                   if(idRd) setState(idRd, getState(idRd).val, true);
                                   else setState(idSrc, getState(idSrc).val, true); 
                                });
                                if(raum && existsObject('enum.rooms.' + raum)) {
                                   let obj = getObject('enum.rooms.' + raum)
                                   obj.common.members.push(idDst);
                                   setObject('enum.rooms.' + raum, obj);
                                }
                                if(gewerk && existsObject('enum.functions.' + gewerk)) {
                                   let obj = getObject('enum.functions.' + gewerk)
                                   obj.common.members.push(idDst);
                                   setObject('enum.functions.' + gewerk, obj);
                                }
                             } 
                          }
                           
                          createAlias('alias.0.' + idAlias, idOrigin, idRead);
                          
                          N 1 Reply Last reply Reply Quote 0
                          • N
                            nolimitek @paul53 last edited by

                            @paul53

                            Ich hab jetzt sicherheitshalber den sonoff adapter installiert und den sonoff direkt per mqtt verbunden
                            folgendes blockly
                            17cb7cd7-9ef7-49f1-8ec6-ece948f47f5b-image.png

                            schaltet ein aber nicht mehr aus . Ich verstehe das nicht

                            Wenn ich das Blockly so mache
                            8a3d010c-9ff9-41c3-a8e9-628ae89de4c1-image.png

                            Dann schaltet er egal immer mit wahr und nie mit falsch ??

                            Hat jemand eine Idee

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @nolimitek last edited by paul53

                              @nolimitek sagte:

                              Hat jemand eine Idee

                              Bau mal eine Log-Ausgabe ein:

                              Blockly_temp.JPG

                              Lässt sich der Aktor im Tab "Objekte" schalten ?

                              N 1 Reply Last reply Reply Quote 0
                              • N
                                nolimitek @paul53 last edited by

                                @paul53 ja kann ich schalten
                                Das kommt dabei rauß

                                22.12.2020, 17:53:52.013	[info ]: javascript.0 (4229) Stop script script.js.debug
                                22.12.2020, 17:53:52.024	[info ]: javascript.0 (4229) Start javascript script.js.debug
                                22.12.2020, 17:53:52.031	[info ]: javascript.0 (4229) script.js.debug: getState(id=fhem.0.MAX_167fd8.temperature, timerId=undefined) => {"val":"21.1","ack":true,"ts":1608655982096,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1608655982096}
                                22.12.2020, 17:53:52.032	[info ]: javascript.0 (4229) script.js.debug: getState(id=fhem.0.MAX_167fd8.desiredTemperature, timerId=undefined) => {"val":"13.5","ack":true,"ts":1608655945660,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1608655944150}
                                22.12.2020, 17:53:52.032	[info ]: javascript.0 (4229) script.js.debug: Temparatur:21.1Grad13.5
                                22.12.2020, 17:53:52.032	[info ]: javascript.0 (4229) script.js.debug: registered 0 subscriptions and 0 schedules
                                22.12.2020, 17:54:45.610	[info ]: javascript.0 (4229) Stop script script.js.debug
                                22.12.2020, 17:54:45.622	[info ]: javascript.0 (4229) Start javascript script.js.debug
                                22.12.2020, 17:54:45.634	[info ]: javascript.0 (4229) script.js.debug: getState(id=fhem.0.MAX_167fd8.temperature, timerId=undefined) => {"val":"21.1","ack":true,"ts":1608655982096,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1608655982096}
                                22.12.2020, 17:54:45.634	[info ]: javascript.0 (4229) script.js.debug: getState(id=fhem.0.MAX_167fd8.desiredTemperature, timerId=undefined) => {"val":"5.0","ack":false,"ts":1608656079906,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1608656079906}
                                22.12.2020, 17:54:45.635	[info ]: javascript.0 (4229) script.js.debug: Temparatur:21.1Grad5.0
                                22.12.2020, 17:54:45.635	[info ]: javascript.0 (4229) script.js.debug: registered 0 subscriptions and 0 schedules
                                
                                N paul53 2 Replies Last reply Reply Quote 0
                                • N
                                  nolimitek @nolimitek last edited by

                                  gerade nochmals mit dem blockly probiert
                                  b847c9b2-8fec-49a1-94d1-4894ec98badd-image.png

                                  egal ob ich das Terhmostat rauf oder runter schalte es wird immer eingeschaltet

                                  1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @nolimitek last edited by paul53

                                    @nolimitek sagte:

                                    Das kommt dabei rauß

                                    Wenn der Sollwert so niedrig ist (13,5 / 5,0 °C) muss der Aktor auf wahr schalten, denn Deine Aktion ist falsch herum. Richtig:
                                    Ist > Soll --> falsch

                                    EDIT: Liefert FHEM Zahlen? Bitte mittels Modifikation der Log-Ausgabe prüfen:

                                    Blockly_temp.JPG

                                    N 2 Replies Last reply Reply Quote 0
                                    • N
                                      nolimitek @paul53 last edited by

                                      @paul53 wenn ich
                                      Richtig: Ist > Soll --> falsch mache un dich den wert von zb 5 Grad auf 24 Grad erhöhe als mehr als die Ist Temparatur schaltet er auf off.

                                      1 Reply Last reply Reply Quote 0
                                      • N
                                        nolimitek @paul53 last edited by

                                        @paul53 said in Temparatur Umzug Fhem:

                                        @nolimitek sagte:

                                        Das kommt dabei rauß

                                        Wenn der Sollwert so niedrig ist (13,5 / 5,0 °C) muss der Aktor auf wahr schalten, denn Deine Aktion ist falsch herum. Richtig:
                                        Ist > Soll --> falsch

                                        EDIT: Liefert FHEM Zahlen? Bitte mittels Modifikation der Log-Ausgabe prüfen:

                                        Blockly_temp.JPG

                                        18:19:38.861	info	javascript.0 (4229) Start javascript script.js.debug
                                        18:19:38.868	info	javascript.0 (4229) script.js.debug: getState(id=fhem.0.MAX_167fd8.temperature, timerId=undefined) => {"val":"21.1","ack":true,"ts":1608655982096,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1608655982096}
                                        18:19:38.868	info	javascript.0 (4229) script.js.debug: getState(id=fhem.0.MAX_167fd8.desiredTemperature, timerId=undefined) => {"val":"6.0","ack":true,"ts":1608657576366,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1608657576366}
                                        18:19:38.868	info	javascript.0 (4229) script.js.debug: Temparatur:stringGradstring
                                        18:19:38.869	info	javascript.0 (4229) script.js.debug: registered 0 subscriptions and 0 schedules
                                        
                                        paul53 1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @nolimitek last edited by

                                          @nolimitek
                                          Mit Strings kann es nicht funktionieren. Man muss in Zahlen wandeln:

                                          Blockly_temp.JPG

                                          N 1 Reply Last reply Reply Quote 0
                                          • N
                                            nolimitek @paul53 last edited by

                                            @paul53 Wennst mir jetzt noch kurz schreiben könntest wo ich den Block "setze .... auf" finde.
                                            Seh langsam nichts mehr 🙂

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            850
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            23
                                            1198
                                            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