Vielen Dank, ich teste die Anpassung aus.
Noch eine Verständnisfrage:
Woher nimmst du oldstate? Kann man das irgendwo über die Objektansicht abfragen? Oder ist ein ioBroker Standard?
Vielen Dank, ich teste die Anpassung aus.
Noch eine Verständnisfrage:
Woher nimmst du oldstate? Kann man das irgendwo über die Objektansicht abfragen? Oder ist ein ioBroker Standard?
@paul53 sagte in Bei höherer Temperatur und heating-Mermal Teleg. versenden:
@mitch sagte: Hier noch die Funktionskategorie als Screenshot:
Das ist nicht "enum.functions.heating_temperature".
Weshalb verwendest du nicht den Selektor?
Das stimmt, ich habe den Screenshot ausgetauscht. Was kann man mit dem Selektor machen?
Hi,
ich überwachte mittels diesem Skript meine Heizkörper, wenn die Temperatur ab 23.5 steigt.
const sensor = getObject('enum.functions.heating_temperature').common.members;
for(let i = 0; i < sensor.length; i++) {
var name = getObject(sensor[i]).common.name;
on(sensor[i] + '.state', function (dp) {
if(dp.state.val >= 23.5) {
var name = getObject(sensor[i]).common.name;
sendTo('telegram.0', {
text: 'Die Temperatur vom Sensor ' + name + ' ist über 23.5°C gestiegen. Die aktuelle Temperatur beträgt ' + dp.state.val + '°C.'
});
}
});
}
Dies mache ich, weil mal die Homematic-IP Heizkörper mal so aus ihrer Range rauslaufen, jedenfalls ist es bei mir 2-3malo vorgekommen. Allerdings werden die Heizkörper jetzt aufgrund der aktuellen Temperaturen schon so warm.
Hier noch die Funktionskategorie als Screenshot:
Jetzt möchte ich, das obigen Skript nur ausgeführt wird und eine Nachricht versendet wird, wenn dieses Element auf heating und nicht auf idle steht:
hass.0.entities.climate.hmip_heizkorperthermostat_schlafzimmer.hvac_action
Allerdings ist der Objektpfad wo anders, siehe Screenshot.
Vielleicht hat jemand eine gute Idee, wie man das skripten kann, bzw. wie man von den Elementen in der Funktionskategorie mittels wegschneiden und hinzufügen auf das genannte Objekt kommt.
LG, Mitch
Hi,
ich habe ein Edentität/Feld mit einem Timestamp drin. Wie kann ich in dem Lovelace Adapter diesen als richtiges Datum anzeigen (evtl. auch mit dem zu Grunde liegenden Wochentag, aber nur wenn möglich).
So sieht es bei mir aus: https://imgur.com/8nvBlXZ
Vielen Dank im Voraus.
LG, Mitch
@mickym Also nur Baskslash bei dem Zeichen den ich auch am Anfang und am Ende des Befehls habe. Single Quote kann also ignoriert werden.
Werde ich testen und hier berichten.
Hi,
ich rufe per Javascript exec auf und habe auch über sudoers den Befehl erlaubt. Das klappt auch grundsätzlich, aber ich muss mehrere Parameter mitgeben:
exec("sudo curl -X POST https://1234.meinedomain.de -H "Content-Type: application/xml" -H "Accept: application/xml" -d "<?xml version='1.0' encoding='utf-8'?><request>...."
Das Problem wird sein, dass Anführungszeichen und diese Zeichen ' darin vorkommen.
Wie kann ich das ganze formatieren, damit ich den ganzen Befehl inkl. Parameter weitergeben kann?
Gruss,
Mitch
@oliverio Authentifizierung wird über Elemente in der XML. Da gibt es Username und Passwort, so wie auch unter dem Link von dir.
Das mit JSON ist mir bewusst. Allerdings ist die JSON-Schnittstelle des Anbieters nicht so gut (oder in meinem Fall einfach) dokumentiert, wie xml. Und XML funktioniert bei mir schonmal, wenn ich es mittels Postman absende.
Meine Erwartungshaltung war, dass ich zumindestens eine Rückmeldung der API vom Anbieter bekomme. Aber unter Debug wird nichts geloggt.
Bei XML sehe ich halt mehr Land. Wenn ich einen statischen XML-Code aus dem ioBroker dahin senden kann, der dann auch umgesetzt wird., muss ich den XML-Code noch mit Platzhaltern versehen und durch die Objekte ersetzen.
Ich denke, das bekomme ich hin.
Ich hatte die letzten Tage viel zu tun und konnte mich nicht darum kümmern. Ich habe nun erfolgreich mittels Postman dieses XML Post zur Anbieter URL (https://gateway.autodns.com) gesendet und es funktioniert:
<?xml version="1.0" encoding="utf-8"?>
<request>
<auth>
<user>username</user>
<password>passwort</password>
<context>4</context>
</auth>
<task>
<code>0202001</code>
<default>
<search_and_replace>
<search>1.2.3.4</search>
<replace>1.2.3.5</replace>
</search_and_replace>
</default>
<zone>
<name>meinedomain.de</name>
<system_ns>a.ns14.net</system_ns>
</zone>
</task>
</request>
Jetzt muss ich das nur noch aus Node RED hinbekommen. Allerdings finde ich dort kein XML, sondern nur JSON.
Kannst jemand einen Flow posten, wie es funktionieren müsste?
Wie macht man das jetzt am günstigsten. Ich habe eine alte IP-Adresse 1.2.3.4 und eine neue IP-Adresse 1.2.3.5. Soll ich damit jetzt das XML in ioBroker Objekt bauen, damit ich es über den Flow absetzen kann, oder kann ich im Flow auch mit Variablen arbeiten, die automatisch die alte IP-Adresse und neue IP-Adresse aus den ioBroker Objekten zusammenbaut. Praktisch wie eine Vorlage.
Ich bräuchte ja auch noch ein Trigger-Objekt, was auf true steht, damit er losläuft und den XML Request per POST absetzt.
Was würdest ihr tun? Ich denke so eine Vorlage wäre wesentlich einfacher.
Ich Held der Nacht sollte natürlich auch den Token in BackItUp hinterlegen!
Jetzt geht es !