NEWS
[gelöst] Temparatur Umzug Fhem
-
@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) -
-
@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)@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); -
@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);Ich hab jetzt sicherheitshalber den sonoff adapter installiert und den sonoff direkt per mqtt verbunden
folgendes blockly

schaltet ein aber nicht mehr aus . Ich verstehe das nicht
Wenn ich das Blockly so mache

Dann schaltet er egal immer mit wahr und nie mit falsch ??
Hat jemand eine Idee
-
Ich hab jetzt sicherheitshalber den sonoff adapter installiert und den sonoff direkt per mqtt verbunden
folgendes blockly

schaltet ein aber nicht mehr aus . Ich verstehe das nicht
Wenn ich das Blockly so mache

Dann schaltet er egal immer mit wahr und nie mit falsch ??
Hat jemand eine Idee
@nolimitek sagte:
Hat jemand eine Idee
Bau mal eine Log-Ausgabe ein:

Lässt sich der Aktor im Tab "Objekte" schalten ?
-
@nolimitek sagte:
Hat jemand eine Idee
Bau mal eine Log-Ausgabe ein:

Lässt sich der Aktor im Tab "Objekte" schalten ?
@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 -
@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 -
@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@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 --> falschEDIT: Liefert FHEM Zahlen? Bitte mittels Modifikation der Log-Ausgabe prüfen:

-
@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 --> falschEDIT: Liefert FHEM Zahlen? Bitte mittels Modifikation der Log-Ausgabe prüfen:

-
@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 --> falschEDIT: Liefert FHEM Zahlen? Bitte mittels Modifikation der Log-Ausgabe prüfen:

@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 --> falschEDIT: Liefert FHEM Zahlen? Bitte mittels Modifikation der Log-Ausgabe prüfen:

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 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 --> falschEDIT: Liefert FHEM Zahlen? Bitte mittels Modifikation der Log-Ausgabe prüfen:

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@nolimitek
Mit Strings kann es nicht funktionieren. Man muss in Zahlen wandeln:
-
@nolimitek
Mit Strings kann es nicht funktionieren. Man muss in Zahlen wandeln:
-
@paul53 Wennst mir jetzt noch kurz schreiben könntest wo ich den Block "setze .... auf" finde.
Seh langsam nichts mehr :-)@nolimitek sagte:
wo ich den Block "setze .... auf" finde.
Unter "Variablen" müssen erst die 3 Variablen ist, soll, ein erstellt werden. Dann wird dort auch "setze auf" angeboten.
-
@nolimitek sagte:
wo ich den Block "setze .... auf" finde.
Unter "Variablen" müssen erst die 3 Variablen ist, soll, ein erstellt werden. Dann wird dort auch "setze auf" angeboten.
-
@paul53 Besten Dank für deine Hilfe. Ich hatte das mal schon testweise gemacht da braucht ich aber die umrechnung auf zahlen nicht. Daher brachte mich das gerade fast zu wahnsinn :-)
Jetzt gehts auf alle Fälle
lg
Christian@nolimitek sagte:
Jetzt gehts
Dann markiere bitte das Thema in der Überschrift des ersten Beitrags als [gelöst].
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
