Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Pumpe steuern über Tempdifferenz

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Pumpe steuern über Tempdifferenz

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      rudolf1957 @mickym last edited by

      @mickym Danke, probiere ich morgen aus! Gute Nacht!

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

        @rudolf1957
        Ich arbeite weder mit NodeRed noch mit Home Assistant und vielleicht gehen meine Gedanken daher am Problem vorbei und die Antwort stört nur.

        Aber die Logik, die hinter der Aufgabe steht, ist m.E. recht simpel.

        Wenn TempAusgang minus TempEingang > x°K ist schalte Pumpe ein
        Wenn TempAusgang minus TempEingang < x°K ist schalte Pumpe aus

        Hysterese beachten, damit das System nicht ins Schwingen kommt.

        Also beide Werte auslesen, Differenz berechnen und Pumpensteuerung anlegen.

        VG Peter

        1 Reply Last reply Reply Quote 0
        • R
          rudolf1957 @mickym last edited by rudolf1957

          @mickym
          Moin, dann schicke ich dir mal das Object!

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @rudolf1957 last edited by

            @rudolf1957 Du solltest das noch in Code Tags einbinden und über die Schaltfläche "Wert kopieren hier rein kopieren und nicht in dem Du den Text markierst und hierher kopierst. 😞
            Deswegen habe ich Dir doch das Bild geschickt. Warum machst Du das nicht?

            Also bitte direkt auf die Schaltfläche rechts

            a4cd3259-a71f-4b9f-be7f-a698274027a5-image.png

            Wert kopieren und den Inhalt dann hier zwischen Code-Tags reinkopieren:

            dc8d5f85-d98e-4cde-94da-a8487ee4c23a-image.png

            Code-Tags.gif

            R 1 Reply Last reply Reply Quote 0
            • R
              rudolf1957 @mickym last edited by

              @mickym
              Sorry, ich hoffe das ist jetzt besser!
              Allerdings Topic + Payload sind nicht in dem Object enthalten. Ich habe keine Ahnung wo Topic + Payload zu finden sind.

              Da die Sensoren bereits eingebaut sind, bekomme ich nur eine Ausgabe über eine DeviceNode wenn der darin angegebene Wert über, oder unterschritten wird. Jedes Mal muss ich warten, bis dies geschieht. Bisher bin ich daran gescheitert, die DeviceNode anders zur Ausgabe zu zwingen.

              Warum machst Du das nicht? - Sorry, war keine Absicht, ich muss mich einfach noch zurecht finden!

              code_text
              1.Object:
              
              {"id":"0","idx":"0","alias":null,"platform":"device","entity_id":"sensor.28_ff641f5989ef_temperature","below":33,"above":32,"from_state":{"entity_id":"sensor.28_ff641f5989ef_temperature","state":"33.0","attributes":{"state_class":"measurement","device_file":"/28.FF641F5989EF/temperature","raw_value":33,"unit_of_measurement":"°C","device_class":"temperature","friendly_name":"Fußbodenheizung Vorlauf"},"last_changed":"2023-03-16T12:38:38.001968+00:00","last_updated":"2023-03-16T12:38:38.001968+00:00","context":{"id":"01GVN6VV5H0P7ZS7T0QC4BHGS1","parent_id":null,"user_id":null}},"to_state":{"entity_id":"sensor.28_ff641f5989ef_temperature","state":"32.8","attributes":{"state_class":"measurement","device_file":"/28.FF641F5989EF/temperature","raw_value":32.8125,"unit_of_measurement":"°C","device_class":"temperature","friendly_name":"Fußbodenheizung Vorlauf"},"last_changed":"2023-03-16T12:39:37.933096+00:00","last_updated":"2023-03-16T12:39:37.933096+00:00","context":{"id":"01GVN6XNPDPBVZ0F663B75G2Y4","parent_id":null,"user_id":null}},"for":null,"description":"numeric state of sensor.28_ff641f5989ef_temperature"}
              
              mickym 2 Replies Last reply Reply Quote 0
              • mickym
                mickym Most Active @rudolf1957 last edited by

                @rudolf1957 Na gut ist das immer noch nicht - ausser dass es in den CodeTags eingebunden ist. 😉 Das ist gut.

                Schau mal ob Deinen Nachricht in etwa so aussieht:

                2c15610e-1ae6-49e4-ae1f-81f1fea3be2a-image.png

                So was kopiert man - in dem man mit der Maus direkt in die erste Zeile unter der roten Schrift msg.payload fährt und dann auf die Schaltfläche Wert kopieren drückt:

                3ca6a53f-db12-4a59-b1ef-a6dc90527c3f-image.png

                Jedenfalls sieht es so aus, als ob Du da ja bereits irgendwelche Alerts oder Temperaturbereiche eingeben kannst.

                Ansonsten das topic und die Eigenschaften zu sehen, musst Du halt das ganze Nachrichtenobjekt ausgeben lassen. (kannst Du in der Debug Node einstellen).

                880e08ad-baf4-4d3a-bf3e-19917832f069-image.png

                Was mich wundert sind diese Grenzen - keine Ahnung - ob die was mit der Benachrichtigung zu tun haben:

                de4834d9-c72d-4a41-ba17-01bda12de1b8-image.png

                Jedenfalls um einzelne Werte zu extrahieren oder zu überprüfen gehst Du auf den Pfad:

                Um zum Beispiel zu selektieren, dass nur Temperatur rauskommt, könnte man vielleicht dieses Element nehmen:

                0080b0fd-bb3e-4f3c-beeb-5299feff692a-image.png

                Diesen Pfad gibst Du dann in der Eigenschaft einer Switch Node ein und filterst dann nur noch auf den Wert temperature - dann kommen nur Temperaturwerte durch:

                9bb3fff1-de1c-4eef-943a-a1035e8c9d03-image.png

                Die aktuelle Temperatur selektierst Du in dem Du die payload eben auf den Pfad setzt der die aktuelle Temperatur ausgibt:

                Ich habe jetzt mal folgenden Wert genommen:

                0f649203-15c8-4a1b-8427-577c164a7b8c-image.png

                darauf setzt Du nun die payload in einer ChangeNode:

                0b67b039-fcad-41dc-9886-2f70f8c06ae5-image.png

                Schon bekommst du die Temperaturwerte in Reinform:

                e0930930-ac49-4483-89d6-609c931c31fb-image.png

                Hier Flow zum Testen:

                [
                   {
                       "id": "456a76eef9daf45a",
                       "type": "inject",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           },
                           {
                               "p": "topic",
                               "vt": "str"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "{\"id\":\"0\",\"idx\":\"0\",\"alias\":null,\"platform\":\"device\",\"entity_id\":\"sensor.28_ff641f5989ef_temperature\",\"below\":33,\"above\":32,\"from_state\":{\"entity_id\":\"sensor.28_ff641f5989ef_temperature\",\"state\":\"33.0\",\"attributes\":{\"state_class\":\"measurement\",\"device_file\":\"/28.FF641F5989EF/temperature\",\"raw_value\":33,\"unit_of_measurement\":\"°C\",\"device_class\":\"temperature\",\"friendly_name\":\"Fußbodenheizung Vorlauf\"},\"last_changed\":\"2023-03-16T12:38:38.001968+00:00\",\"last_updated\":\"2023-03-16T12:38:38.001968+00:00\",\"context\":{\"id\":\"01GVN6VV5H0P7ZS7T0QC4BHGS1\",\"parent_id\":null,\"user_id\":null}},\"to_state\":{\"entity_id\":\"sensor.28_ff641f5989ef_temperature\",\"state\":\"32.8\",\"attributes\":{\"state_class\":\"measurement\",\"device_file\":\"/28.FF641F5989EF/temperature\",\"raw_value\":32.8125,\"unit_of_measurement\":\"°C\",\"device_class\":\"temperature\",\"friendly_name\":\"Fußbodenheizung Vorlauf\"},\"last_changed\":\"2023-03-16T12:39:37.933096+00:00\",\"last_updated\":\"2023-03-16T12:39:37.933096+00:00\",\"context\":{\"id\":\"01GVN6XNPDPBVZ0F663B75G2Y4\",\"parent_id\":null,\"user_id\":null}},\"for\":null,\"description\":\"numeric state of sensor.28_ff641f5989ef_temperature\"}",
                       "payloadType": "json",
                       "x": 310,
                       "y": 2800,
                       "wires": [
                           [
                               "193ec6e90595f42c"
                           ]
                       ]
                   },
                   {
                       "id": "13d00a2d4b97ba4a",
                       "type": "debug",
                       "z": "7e6af0015415146d",
                       "name": "Temperatur",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 890,
                       "y": 2800,
                       "wires": []
                   },
                   {
                       "id": "193ec6e90595f42c",
                       "type": "switch",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "property": "payload.to_state.attributes.device_class",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "eq",
                               "v": "temperature",
                               "vt": "str"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 1,
                       "x": 470,
                       "y": 2800,
                       "wires": [
                           [
                               "7aaeeae6e7750723"
                           ]
                       ]
                   },
                   {
                       "id": "7aaeeae6e7750723",
                       "type": "change",
                       "z": "7e6af0015415146d",
                       "name": "",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "payload.to_state.attributes.raw_value",
                               "tot": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 670,
                       "y": 2800,
                       "wires": [
                           [
                               "13d00a2d4b97ba4a"
                           ]
                       ]
                   }
                ]
                

                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @rudolf1957 last edited by mickym

                  @rudolf1957 sagte in Pumpe steuern über Tempdifferenz:

                  Da die Sensoren bereits eingebaut sind, bekomme ich nur eine Ausgabe über eine DeviceNode wenn der darin angegebene Wert über, oder unterschritten wird. Jedes Mal muss ich warten, bis dies geschieht. Bisher bin ich daran gescheitert, die DeviceNode anders zur Ausgabe zu zwingen.

                  Wie heissen den diese Nodes die Du da installiert hast?

                  Schau mal im Paletten- Manager nach.

                  R 1 Reply Last reply Reply Quote 0
                  • R
                    rudolf1957 @mickym last edited by

                    @mickym Danke, für die vielen Infos! Damit sollte ich meiner DifferenzSteuerung näher kommen!

                    Was mich wundert sind diese Grenzen<< Die gesetzten TempWerte kannst du vernachlässigen, sie dienen nur zum Schnellen Auslösen der Wertübergabe.

                    Das NoteModul, das die Temperatur aus dem RS485 TempFühler ausliest, heißt Device, aus der Pallette "Home Assistant"

                    Die Einstellmöglichkeiten von der DeviceNote habe ich unten in das Fenster eingestellt, mit der Einschränkung, dass bei "Values: trigger | action" , nur Trigger funktioniert. Wenn ich "action" aktiviere, bekommt das Modul einen Eingang, schließe ich dann eine InjectNote am Eingang an und löse eine Aktion aus, bekomme ich aber nur Fehlermeldungen - {"code":"unknown_error","message":"Integration 'sensor' does not support device automation actions"}" Alpha version: At this point anything could change or not work.

                    Found an issue? Post it in issues . Have questions or comments? Post them here".

                    Hier die Einstellmöglichkeiten vom der DeviceNote

                    device
                    Configuration
                    
                    Typestring
                    
                        Values: trigger | action
                    
                    Devicestring
                        Id of the device
                    Triggerobject
                        Home Assistant object of the trigger
                    Actionobject
                        Home Assistant object of the action
                    Capabilitiesobject
                    
                    Outputs
                    
                        Value types:
                    
                        config: config properties of the node
                        device id: device id that triggered the node
                        event data: event data received from Home Assistant
                        sent data: data sent to Home Assistant
                    code_text
                    

                    Deine Vorschläge probiere ich später aus, jetzt muss ich erst einem raus in die Sonne ☺ und einkaufen.

                    1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active last edited by

                      @rudolf1957 sagte in Pumpe steuern über Tempdifferenz:

                      Home Assistant

                      Ja OK - aber dann denke ich bin ich erst mal raus - das sind Dinge die aus der Device Node kommen, die stammen von Home Assistant.

                      https://zachowj.github.io/node-red-contrib-home-assistant-websocket/node/trigger-state.html#entity-id-filter-types

                      und da kenn ich mich nicht aus. Da solltest Du deine Fragen doch lieber in einem HomeAssistant Forum stellen, das hat mit NodeRed erst mal nichts zu tun. 😉

                      R 1 Reply Last reply Reply Quote 0
                      • R
                        rudolf1957 @mickym last edited by

                        @mickym
                        Guten Abend, ganz herzlichen Dank für deine Hilfe!
                        Ebenso auch danke allen anderen die geantwortet haben.
                        Ich bin zwar noch nicht am Ziel aber zu mindest etwas näher gekommen.
                        VG
                        Rudi🙂 🙏

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          stefan14 @rudolf1957 last edited by

                          @rudolf1957
                          Versuche es mal mit diesem flow

                          [
                              {
                                  "id": "899599b8f9de1378",
                                  "type": "tab",
                                  "label": "Flow 2",
                                  "disabled": false,
                                  "info": "",
                                  "env": []
                              },
                              {
                                  "id": "458e3bc802ffa358",
                                  "type": "api-current-state",
                                  "z": "899599b8f9de1378",
                                  "name": "",
                                  "server": "2a08017d41c42a0a",
                                  "version": 3,
                                  "outputs": 1,
                                  "halt_if": "",
                                  "halt_if_type": "str",
                                  "halt_if_compare": "is",
                                  "entity_id": "sensor.28_ff641f598ee0_temperature",
                                  "state_type": "num",
                                  "blockInputOverrides": false,
                                  "outputProperties": [
                                      {
                                          "property": "payload",
                                          "propertyType": "msg",
                                          "value": "",
                                          "valueType": "entityState"
                                      },
                                      {
                                          "property": "topic",
                                          "propertyType": "msg",
                                          "value": "Temp1",
                                          "valueType": "str"
                                      }
                                  ],
                                  "for": "0",
                                  "forType": "num",
                                  "forUnits": "minutes",
                                  "override_topic": false,
                                  "state_location": "payload",
                                  "override_payload": "msg",
                                  "entity_location": "data",
                                  "override_data": "msg",
                                  "x": 550,
                                  "y": 540,
                                  "wires": [
                                      [
                                          "c9415f769ea20817"
                                      ]
                                  ]
                              },
                              {
                                  "id": "fce1376ac4483678",
                                  "type": "inject",
                                  "z": "899599b8f9de1378",
                                  "name": "",
                                  "props": [
                                      {
                                          "p": "payload"
                                      },
                                      {
                                          "p": "topic",
                                          "vt": "str"
                                      }
                                  ],
                                  "repeat": "1",
                                  "crontab": "",
                                  "once": false,
                                  "onceDelay": 0.1,
                                  "topic": "",
                                  "payload": "",
                                  "payloadType": "date",
                                  "x": 210,
                                  "y": 560,
                                  "wires": [
                                      [
                                          "458e3bc802ffa358",
                                          "e562b1ee38ae590c"
                                      ]
                                  ]
                              },
                              {
                                  "id": "e562b1ee38ae590c",
                                  "type": "api-current-state",
                                  "z": "899599b8f9de1378",
                                  "name": "",
                                  "server": "2a08017d41c42a0a",
                                  "version": 3,
                                  "outputs": 1,
                                  "halt_if": "",
                                  "halt_if_type": "str",
                                  "halt_if_compare": "is",
                                  "entity_id": "sensor.solis_temperature",
                                  "state_type": "num",
                                  "blockInputOverrides": false,
                                  "outputProperties": [
                                      {
                                          "property": "payload",
                                          "propertyType": "msg",
                                          "value": "",
                                          "valueType": "entityState"
                                      },
                                      {
                                          "property": "topic",
                                          "propertyType": "msg",
                                          "value": "Temp2",
                                          "valueType": "str"
                                      }
                                  ],
                                  "for": "0",
                                  "forType": "num",
                                  "forUnits": "minutes",
                                  "override_topic": false,
                                  "state_location": "payload",
                                  "override_payload": "msg",
                                  "entity_location": "data",
                                  "override_data": "msg",
                                  "x": 520,
                                  "y": 600,
                                  "wires": [
                                      [
                                          "c9415f769ea20817"
                                      ]
                                  ]
                              },
                              {
                                  "id": "80b539375074cdfd",
                                  "type": "function",
                                  "z": "899599b8f9de1378",
                                  "name": "function 5",
                                  "func": "msg.topic = \"diff\"\nmsg.payload = msg.payload.Temp2 - msg.payload.Temp1;\nreturn msg;",
                                  "outputs": 1,
                                  "noerr": 0,
                                  "initialize": "",
                                  "finalize": "",
                                  "libs": [],
                                  "x": 1080,
                                  "y": 560,
                                  "wires": [
                                      [
                                          "19dc43570ca9090f",
                                          "61e394b2b1d96a82"
                                      ]
                                  ]
                              },
                              {
                                  "id": "c9415f769ea20817",
                                  "type": "join",
                                  "z": "899599b8f9de1378",
                                  "name": "",
                                  "mode": "custom",
                                  "build": "object",
                                  "property": "payload",
                                  "propertyType": "msg",
                                  "key": "topic",
                                  "joiner": "\\n",
                                  "joinerType": "str",
                                  "accumulate": false,
                                  "timeout": "",
                                  "count": "2",
                                  "reduceRight": false,
                                  "reduceExp": "",
                                  "reduceInit": "",
                                  "reduceInitType": "",
                                  "reduceFixup": "",
                                  "x": 890,
                                  "y": 560,
                                  "wires": [
                                      [
                                          "80b539375074cdfd",
                                          "847e8baca31e6b10"
                                      ]
                                  ]
                              },
                              {
                                  "id": "19dc43570ca9090f",
                                  "type": "debug",
                                  "z": "899599b8f9de1378",
                                  "name": "debug 6",
                                  "active": true,
                                  "tosidebar": true,
                                  "console": true,
                                  "tostatus": true,
                                  "complete": "payload",
                                  "targetType": "msg",
                                  "statusVal": "payload",
                                  "statusType": "auto",
                                  "x": 1310,
                                  "y": 620,
                                  "wires": []
                              },
                              {
                                  "id": "847e8baca31e6b10",
                                  "type": "debug",
                                  "z": "899599b8f9de1378",
                                  "name": "debug 7",
                                  "active": false,
                                  "tosidebar": true,
                                  "console": true,
                                  "tostatus": true,
                                  "complete": "payload",
                                  "targetType": "msg",
                                  "statusVal": "payload",
                                  "statusType": "auto",
                                  "x": 1070,
                                  "y": 640,
                                  "wires": []
                              },
                              {
                                  "id": "61e394b2b1d96a82",
                                  "type": "switch",
                                  "z": "899599b8f9de1378",
                                  "name": "",
                                  "property": "payload",
                                  "propertyType": "msg",
                                  "rules": [
                                      {
                                          "t": "gt",
                                          "v": "1",
                                          "vt": "num"
                                      },
                                      {
                                          "t": "lt",
                                          "v": "1",
                                          "vt": "num"
                                      }
                                  ],
                                  "checkall": "true",
                                  "repair": false,
                                  "outputs": 2,
                                  "x": 1390,
                                  "y": 460,
                                  "wires": [
                                      [
                                          "316918699f3ea2ea"
                                      ],
                                      [
                                          "0c942921a06f0cb7"
                                      ]
                                  ]
                              },
                              {
                                  "id": "316918699f3ea2ea",
                                  "type": "api-call-service",
                                  "z": "899599b8f9de1378",
                                  "name": "Pumpe Ein",
                                  "server": "2a08017d41c42a0a",
                                  "version": 5,
                                  "debugenabled": false,
                                  "domain": "switch",
                                  "service": "turn_on",
                                  "areaId": [],
                                  "deviceId": [],
                                  "entityId": [
                                      "switch.hm_flur_statusanzeige_state_ch3"
                                  ],
                                  "data": "",
                                  "dataType": "jsonata",
                                  "mergeContext": "",
                                  "mustacheAltTags": false,
                                  "outputProperties": [],
                                  "queue": "none",
                                  "x": 1610,
                                  "y": 400,
                                  "wires": [
                                      []
                                  ]
                              },
                              {
                                  "id": "0c942921a06f0cb7",
                                  "type": "api-call-service",
                                  "z": "899599b8f9de1378",
                                  "name": "Pumpe Aus",
                                  "server": "2a08017d41c42a0a",
                                  "version": 5,
                                  "debugenabled": false,
                                  "domain": "switch",
                                  "service": "turn_off",
                                  "areaId": [],
                                  "deviceId": [],
                                  "entityId": [
                                      "switch.hm_flur_statusanzeige_state_ch3"
                                  ],
                                  "data": "",
                                  "dataType": "jsonata",
                                  "mergeContext": "",
                                  "mustacheAltTags": false,
                                  "outputProperties": [],
                                  "queue": "none",
                                  "x": 1610,
                                  "y": 480,
                                  "wires": [
                                      []
                                  ]
                              },
                              {
                                  "id": "2a08017d41c42a0a",
                                  "type": "server",
                                  "name": "Home Assistant",
                                  "version": 5,
                                  "addon": false,
                                  "rejectUnauthorizedCerts": true,
                                  "ha_boolean": "y|yes|true|on|home|open",
                                  "connectionDelay": true,
                                  "cacheJson": true,
                                  "heartbeat": false,
                                  "heartbeatInterval": "30",
                                  "areaSelector": "friendlyName",
                                  "deviceSelector": "friendlyName",
                                  "entitySelector": "friendlyName",
                                  "statusSeparator": ": ",
                                  "statusYear": "hidden",
                                  "statusMonth": "short",
                                  "statusDay": "numeric",
                                  "statusHourCycle": "default",
                                  "statusTimeFormat": "h:m",
                                  "enableGlobalContextStore": false
                              }
                          ]
                          
                          R 1 Reply Last reply Reply Quote 0
                          • R
                            rudolf1957 @stefan14 last edited by

                            @stefan14
                            Hallo Stefan14, es funktioniert, nachdem ich die Geräte angepasst habe!
                            Herzlichen Dank ☺ 🙏

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            1.0k
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            5
                            21
                            865
                            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