NEWS
Verständnisfrage Zeichenkette / String
-
Hallo Community,
ich versuche ein Datenpunkt vom Typ String/ Zeichenkette einzulesen und auszuwerten. "HeatingMode".
Ist es richtig umgesetzt, das ich erst die interne Variable "heatingMode" setze mit dem Wert des Datenpunktes "heatingMode" und dann den Vergleich anstelle "heatingMode" ungleich "summer"?
Mit dem Script möchte ich meine Heizung zwischen Sommer-/Winterbetrieb umschalten.
-
@takahara
Du brauchst eigentlich nicht zuerst den Datenpunkt in eine Variable sichern, sondern kannst unten auch direkt mit dem Datenpunkt arbeiten. Du zeigst die einstellung von einem State unter 0_userdata, den hast du ja selber erstellt. Bist du dir aber sicher, das der originale Datenpunkt ebenfalls vom Typ String ist? Zumeist sind diese DP vom Typ Number, oder mit unter Mixed und trotzdem kommt eine Zahl rein. Dann wird unter States der Menschenlesbare Wert als String hinterlegt.Z.B.:
{ "_id": "ems-esp.0.heatingCircuits.hc1.hpmode", "type": "state", "common": { "id": "thermostat.hc1.hpmode", "name": "ems:HK1 WP-Modus (thermostat)", "type": "mixed", "read": true, "write": true, "role": "level", "states": { "0": "Heizen", "1": "Kühlen", "2": "Heizen & Kühlen" } }, "native": { "ems_enum": [ "Heizen", "Kühlen", "Heizen & Kühlen" ], "ems_type": "enum", "visible": true, "ems_command": "hpmode", "ems_device": "thermostat", "ems_id": "hc1", "ems_api": "3.7.2" }, "from": "system.adapter.ems-esp.0", "user": "system.user.admin", "ts": 1749044767370, "acl": { "object": 1638, "state": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Ich müßte hier für Heizen eine 0 in den State schreiben, für Heizen und Kühlen eine 2. Schau dir deinen orginalen Datenpunkt einmal genauer an.
-
@ralf-2 said in Verständnisfrage Zeichenkette / String:
Du brauchst eigentlich nicht zuerst den Datenpunkt in eine Variable sichern, sondern kannst unten auch direkt mit dem Datenpunkt arbeiten. Du zeigst die einstellung von einem State unter 0_userdata, den hast du ja selber erstellt. Bist du dir aber sicher, das der originale Datenpunkt ebenfalls vom Typ String ist?
Schau dir deinen orginalen Datenpunkt einmal genauer an.Was kann ich anders machen um den Datenpunkt zu erstellen?
VG Takahara
-
@takahara
Welchen Datenpunkt willst du denn steuern?
Ein Datenpunkt unter 0_Userdata steuert ja kein Gerät. Zeige mal bitte den orginalen Datenpunkt. Dazu oben auf den Kopf klicken um in den Expertenmodus zu kommen
Dann beim zu steuernden Datenpunkt auf den Stift klicken
Dann das was du unter Objektdaten siehst in die Zwischenablage kopieren
und hier in Codetags einfügen
Was ich jedoch immer noch nicht verstehe:
- Du willst einen Datenpunkt unter 0_Userdata erstellen
- Du willst mit einem Blockly diesen Datenpunkt steuern
- Wie soll das aber mit der Heizung in Bezug stehen? Wie ist die Heizung selber in IOBroker integriert?
-
@ralf-2 said in Verständnisfrage Zeichenkette / String:
Welchen Datenpunkt willst du denn steuern?
Ich möchte den selbst erzeugten Datenpunkt "heatingMode" schreiben und lesen können. Der Datenpunkt soll zwei Werte annehmen können (winter/summer). Es soll auch möglich sein, eine Wenn-Bedingung zu Prüfen. Z.B. "wenn Datenpunkt heatingMode gleich "summer", dann...
und hier in Codetags einfügen
{ > "common": { > "name": "heatingMode", > "desc": "Manuell erzeugt", > "role": "state", > "type": "string", > "read": true, > "write": true, > "def": "", > "custom": { > "influxdb.0": { > "enabled": true, > "storageType": "", > "aliasId": "", > "debounceTime": 0, > "blockTime": 0, > "changesOnly": false, > "changesRelogInterval": 3600, > "changesMinDelta": 0, > "ignoreBelowNumber": "", > "disableSkippedValueLogging": false, > "enableDebugLogs": false, > "debounce": 0 > } > } > }, > "type": "state", > "native": {}, > "_id": "0_userdata.0.Heizung.heatingMode", > "acl": { > "object": 1636, > "state": 1636, > "owner": "system.user.admin", > "ownerGroup": "system.group.administrator" > }, > "from": "system.adapter.admin.0", > "user": "system.user.admin", > "ts": 1749271061052 > } > > Was ich jedoch immer noch nicht verstehe: > - Du willst einen Datenpunkt unter 0_Userdata erstellen Takahara said: Korrekt > - Du willst mit einem Blockly diesen Datenpunkt steuern Takahara said: steuern und lesen. > - Wie soll das aber mit der Heizung in Bezug stehen? Wie ist die Heizung selber in IOBroker integriert?
MOD-EDIT: Code in code-tags gesetzt!
Ich habe ein Homematic IP System und möchte in Abhängigkeit vom Wert des Datenpunktes "heatingMode" die Heizungsventile in den Sommer-/Winterbetrieb schalten.
-
@takahara sagte in Verständnisfrage Zeichenkette / String:
Der Datenpunkt soll zwei Werte annehmen können (
winter/summer)Das wäre ein typischer Fall für einen Bool
Datenpunkt "Sommer" true oder false
-
@ralf-2 sagte in Verständnisfrage Zeichenkette / String:
Dann beim zu steuernden Datenpunkt auf den Stift klicken
@Takahara
das wäre der HmIP Datenpunkt!
zeig uns bitte da von einem die Objektdaten in code-tags -
@homoran sagte in Verständnisfrage Zeichenkette / String:
@ralf-2 sagte in Verständnisfrage Zeichenkette / String:
Dann beim zu steuernden Datenpunkt auf den Stift klicken
@Takahara
das wäre der HmIP Datenpunkt!
zeig uns bitte da von einem die Objektdaten in code-tags@Takahara kommt das noch?
bei nochmaligem Ansehen fiel mehr leider jetzt erst auf, dass du auch bei eigenen Datenpunkten fälschlicherweise "steuere" verwendest, obwohl diese Datenpunkte nichts steuern.