Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Marco78

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    M
    • Profile
    • Following 0
    • Followers 0
    • Topics 4
    • Posts 11
    • Best 1
    • Groups 1

    Marco78

    @Marco78

    1
    Reputation
    22
    Profile views
    11
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Marco78 Follow
    Starter

    Best posts made by Marco78

    • RE: Tasmota vs ESPeasy, welchen ESP8266?

      Hallo und frohes neues,

      ich selbst nutze für Sonoff Tasmota und ESP-Chips laufen mit ESPMega.

      Die ganzen 18B20 mit ESPMega können ein Problem werden, wenn du die Firmware nicht selbst modifizierst.
      Es können in der ursprünglichen Version nur 12 Task verarbeitet werden. Sprich 12 IDs der 18B20 erfasst werden. Evtl gibt es einen Trick dieses mit der Standart-Firmware zu übergehen, den kenne ich aber nicht. Die Modifikation wäre mit etwas programmieraufwand, welcher im Netz dokumentiert ist aber möglich.

      Zu Tasmota mit 18B20 kann ich nicht sagen.

      An ESPHome habe ich vor einiger Zeit auch schon nachgedacht, aber aus folgenden Gründen verworfen:

      • (Noch) zu wenig Nutzer, zu wenig Hilfestellungen zu finden (Im Vergleich zu Tasmota und ESPMega)
      • so wie ich das deute ist für ein Update jedes mal eine neue Kompilierung notwendig, damit "Verwaltungsaufwand" der YAMLs notwendig
      • YAML ist auch nicht unbediengt jedermanns Sache, da ist eine Konfiguration über ein WEBUI mitunter einfacher. SmartHome soll sich ja nicht nur an Programmierer und Freaks wenden, sondern für jedermann zugänglich sein!
      • Ein Update für Tasmota und ESPEasy spielt man auch per OTA ein, muss aber nicht zuvor die BIN selbst erstellen.
        Weiteres dazu würde schon gesagt, das muss ich nicht wiederholen.

      Aber jeder soll das nehmen, womit er am besten zurecht kommt...

      Nimm keine billigen Relais-Boards! Die Kontakte fangen schnell an zu kleben, die Schrauben der Anschlüsse sind auch schnell am Ende!
      Da lohnt es ein paar € mehr zu investieren.

      Ich hatte bis jetzt nur die Wemos, welche billig waren und 4 Wochen Lieferzeit hatten und kann keinen Nachteil erkennen.

      Zu deinen Solid State Relais:
      Ein "normales" Relais schaltet sich dann ein, wenn es den Befehl dazu bekommt (mit etwas Verzögerung, weil das Magnetfeld noch aufgebaut werden muss).
      Wann das ist, ist mehr oder weniger Zufall. Die 230V Wechselspannung, welche du damit schaltest, durchläuft mit seiner Sinusform mehrmals in der Sekunde die 0V.
      SSR schalten zu dieser Zeit, wenn die Kurve auf 0V ist. Damit fließt dann am Verbraucher kein Strom, dieses hat für das Relais, den Verbraucher und das Stromnetz nur Vorteile.
      Ein normales Relais kann ggf. auch mal dann schalten, wenn die Sinus-Kurve gerade auf 325V ist (Upeak).
      SSR lohnen sich vor allem für induktive oder kapazitive Lasten. Oder wenn du echt viel schalten muss (viel im Sinne von Anzahl der Verbraucher und Häufigkeit).

      Festplatten damit zu schalten klingt aber zum einen kompliziert und zum anderen gefährlich.
      Wie willst du die Notwendigkeit erfassen usw...
      Festplatten schaltet man besser mit S.M.A.R.T. in den Ruhezustand. OMV kann das.

      Noch ein paar Worte zum S in IoT:
      Ja, das stimmt, aber:

      • In den Changelogs ist mit ein Fix dafür noch nicht aufgefallen (mag aber auch sein das ich es überlesen habe oder es nicht als ein Security-Fix erkannt habe!)
      • So wie ich das deute, wird auch jedes mal eine Zugang zur Hardware benötigt, um einen Angriff zu starten.
      • Ist es meine Sicht eine Firmware wie Tasmota, ESPMega, ESPHome und sonstige alle mal sicherer als die original Firmware, welche sich mit einer Cloud nach sonstwohin verbindet und dort SSID und WLAN-PW direkt abgreifen können.
      • Auch Netzwerk-Kabel sind nicht immer sicherer. Diese trenne ich auf, baue einen Switch dazwischen und bin im Netz, ohne ein PW kennen zu müssen.
      posted in Hardware
      M
      Marco78

    Latest posts made by Marco78

    • Smartmeter mit RS485

      Hallo,

      das Smartmeter im Titel bezieht sich auf den Adapter als auch auf ein Gerät.

      Ich habe einen Logarex LK13BE904639
      Link zu einer Anleitung: https://www.stadtwerke-burgdorf-netz.de/_Resources/Persistent/9450d40cdc3d62d8de38a3e4b06ad5d6805c87b4/Gebrauchsanleitung_LK13BE8030x9.pdf
      An den Anschlüssen + und - habe ich ganz naiv folgenden USB-Adapter angeschlossen: https://de.aliexpress.com/i/4000243139972.html?gatewayAdapt=glo2deu

      Jetzt hätte ich gedacht, dass der Adapter Smartmeter den Verbrauch auslesen kann.
      Der Status bleibt jedoch auf nicht verbunden.

      Eingestellt ist folgendes:
      a7b788be-84b9-4139-b203-1d056c1065fe-image.png

      Im Log steht, das keine Daten gelesen werden konnten.

      Bisher habe ich nur Threads dazu gefunden, wo Zähler per IR ausgelesen werden, vielleicht ist der Adapter dafür auch nicht geeignet?!

      Der USB-Adapter wird zumindest erkannt. Ob Daten übertragen werden können oder gelesen werden können, weiß ich nicht, ich weiß nicht, wie ich das testen soll.
      Das ganze läuft mit Debian.

      Der Adapter Modbus brachte auch keine Daten.

      Da ich mir nicht vorstellen kann, der erste zu sein, der Daten über RS485 auslesen möchte, bitte ich hiermit im Hilfe.

      Zwischendurch wollte ich Volkszähler installieren um es damit zu testen, die Installation lässt sich aber nicht durchführen. Vielleicht probiere ich das heute Abend noch...

      Vielen Dank schon mal!!!

      posted in ioBroker Allgemein
      M
      Marco78
    • iCal Termin von gestern

      Hallo,

      der (aktuelle) iCal-Adapter funktioniert wohl so weit wie er soll.
      Was ich jedoch suche, ist ein Datenpunkt der einen Suchbegriff von "Yesterday" auf true stellt.

      Was ich dazu gefunden habe ist folgendes:
      https://github.com/iobroker-community-adapters/ioBroker.ical/issues/53 einen (abgelehnten) Issue und einen Datenpunkt, welcher zumindest zählt, ob es gestern Treffer gab.
      cba7fa87-967d-4434-a87b-379243395018-image.png

      Der Sinn der Abfrage auf gestern ist folgender (mit den momentanen Filtern noch nicht zu erkennen, die waren nur ein Test).
      Wenn meine Frau gestern zur Nachtsicht gefahren ist und dieses im Kalender eingetragen ist, soll am nächsten Tag bis nachmittags das Telefon im Schlafzimmer nicht klingeln.
      das wird morgens um 07:00 geschaltet / abgefragt.

      Der Termin kann einzeln oder über mehrere Tage laufen, ich weiß nicht, ob das einen Unterschied macht?!

      Als Workaround wäre es sicherlich möglich, nur eine Instanz zu haben, welche die Nachtschicht abfragt und dann den Datenpunkt ical.0.data.countYesterday auszuwerten.

      Vielleicht gibt es ja aber auch eine Möglichkeit, welche ich gerade sehe.

      Ich freue mich über Inspirationen.

      2000ede created this issue in iobroker-community-adapters/ioBroker.ical

      closed Termine von "gestern" gewünscht #53

      posted in ioBroker Allgemein
      M
      Marco78
    • RE: Skript Hilfe: Warnung Heizstrahler immer noch an

      Fehlt in deiner Abfrage, in der zweiten "UND-Zeile" nicht noch ein Datenpunkt um überhaupt irgendwann mal triggern zu können?
      So wie ich das deute, kann die Bedienung so niemals erfüllt werden?!

      posted in Blockly
      M
      Marco78
    • RE: [gelöst] Tageszeitabhängiges Blockly-Script

      Einen ähnlich komplizierten Ansatz habe ich auch mal erfolglos versucht.
      Ich weiß nicht mehr was das Problem war, ob es Datumsübergreifend nicht so geht wie man sich es vorstellt oder so ähnlich...

      Gelöst habe ich es mit einen neuen Datenpunkt, welches einfach geändert wird und angebit ob es hell oder dunkel ist.

      c91deecf-ceab-4025-8bb6-e8cb797b380a-image.png

      Das vereinfacht den Aufwand auch, da ich diesen Datenpunkt an vielen Stellen einsetze.
      Auch wenn ich gerne gewusst hätte, wo der Denkfehler ist, hiermit komme ich gut zurecht, und wie gesagt ist es einfacher als eine lange Auswertungszeile.

      4540a809-a487-4e1a-a91b-f543fde2ec81-image.png

      Hier bitte nicht wundern, die Relais sind low-activ

      posted in Blockly
      M
      Marco78
    • RE: Tasmota vs ESPeasy, welchen ESP8266?

      Hallo und frohes neues,

      ich selbst nutze für Sonoff Tasmota und ESP-Chips laufen mit ESPMega.

      Die ganzen 18B20 mit ESPMega können ein Problem werden, wenn du die Firmware nicht selbst modifizierst.
      Es können in der ursprünglichen Version nur 12 Task verarbeitet werden. Sprich 12 IDs der 18B20 erfasst werden. Evtl gibt es einen Trick dieses mit der Standart-Firmware zu übergehen, den kenne ich aber nicht. Die Modifikation wäre mit etwas programmieraufwand, welcher im Netz dokumentiert ist aber möglich.

      Zu Tasmota mit 18B20 kann ich nicht sagen.

      An ESPHome habe ich vor einiger Zeit auch schon nachgedacht, aber aus folgenden Gründen verworfen:

      • (Noch) zu wenig Nutzer, zu wenig Hilfestellungen zu finden (Im Vergleich zu Tasmota und ESPMega)
      • so wie ich das deute ist für ein Update jedes mal eine neue Kompilierung notwendig, damit "Verwaltungsaufwand" der YAMLs notwendig
      • YAML ist auch nicht unbediengt jedermanns Sache, da ist eine Konfiguration über ein WEBUI mitunter einfacher. SmartHome soll sich ja nicht nur an Programmierer und Freaks wenden, sondern für jedermann zugänglich sein!
      • Ein Update für Tasmota und ESPEasy spielt man auch per OTA ein, muss aber nicht zuvor die BIN selbst erstellen.
        Weiteres dazu würde schon gesagt, das muss ich nicht wiederholen.

      Aber jeder soll das nehmen, womit er am besten zurecht kommt...

      Nimm keine billigen Relais-Boards! Die Kontakte fangen schnell an zu kleben, die Schrauben der Anschlüsse sind auch schnell am Ende!
      Da lohnt es ein paar € mehr zu investieren.

      Ich hatte bis jetzt nur die Wemos, welche billig waren und 4 Wochen Lieferzeit hatten und kann keinen Nachteil erkennen.

      Zu deinen Solid State Relais:
      Ein "normales" Relais schaltet sich dann ein, wenn es den Befehl dazu bekommt (mit etwas Verzögerung, weil das Magnetfeld noch aufgebaut werden muss).
      Wann das ist, ist mehr oder weniger Zufall. Die 230V Wechselspannung, welche du damit schaltest, durchläuft mit seiner Sinusform mehrmals in der Sekunde die 0V.
      SSR schalten zu dieser Zeit, wenn die Kurve auf 0V ist. Damit fließt dann am Verbraucher kein Strom, dieses hat für das Relais, den Verbraucher und das Stromnetz nur Vorteile.
      Ein normales Relais kann ggf. auch mal dann schalten, wenn die Sinus-Kurve gerade auf 325V ist (Upeak).
      SSR lohnen sich vor allem für induktive oder kapazitive Lasten. Oder wenn du echt viel schalten muss (viel im Sinne von Anzahl der Verbraucher und Häufigkeit).

      Festplatten damit zu schalten klingt aber zum einen kompliziert und zum anderen gefährlich.
      Wie willst du die Notwendigkeit erfassen usw...
      Festplatten schaltet man besser mit S.M.A.R.T. in den Ruhezustand. OMV kann das.

      Noch ein paar Worte zum S in IoT:
      Ja, das stimmt, aber:

      • In den Changelogs ist mit ein Fix dafür noch nicht aufgefallen (mag aber auch sein das ich es überlesen habe oder es nicht als ein Security-Fix erkannt habe!)
      • So wie ich das deute, wird auch jedes mal eine Zugang zur Hardware benötigt, um einen Angriff zu starten.
      • Ist es meine Sicht eine Firmware wie Tasmota, ESPMega, ESPHome und sonstige alle mal sicherer als die original Firmware, welche sich mit einer Cloud nach sonstwohin verbindet und dort SSID und WLAN-PW direkt abgreifen können.
      • Auch Netzwerk-Kabel sind nicht immer sicherer. Diese trenne ich auf, baue einen Switch dazwischen und bin im Netz, ohne ein PW kennen zu müssen.
      posted in Hardware
      M
      Marco78
    • Logikwert mit HA-Bridge über MQTT senden

      Hallo,

      ich hoffe hier richtig zu sein.

      Ich habe eine OBI WLAN-Steckdose mit Tasmota geflasht.
      Diese ist mit dem Sonoff-Adapter in IoBroker eingebunden.
      Der Datenpunkt zum Schalten ist ein Logikwert (wurde automatisch so angelegt, funktioniert über das Ändern des Wertes in den Objekten auch. Beim anklicken erscheint eine Checkbox.)

      Die Steckdose soll eigentlich auch über den Sonoff-Adapter weiterhin laufen und nicht über den "normalen" MQTT-Adapter, da der Sonoff zumindest mit Tasmota Vorteile hat.

      In der HA-Bridge versuche ich den Wert mit folgendem publish zu setzen:
      {"clientId":"haBridge","topic":"sonoff.0.DVES_55F6DA.POWER","message":"1","qos":"1","retain":"false"}
      Aber egal, was ich bei Message eintrage, ob 0, 1, true, false, on, off... der zu sendende Wert erscheint zwar in IoBroker im Datenpunkt, aber mit true oder false wird keine Aktion ausgelöst.

      Das schalten anderer Datenpunkte welche mit 0,1 oder ON, OFF angesprochen werden, funktionieren mit dieser Konfiguration. Nur das Boolean funktioniert nicht.

      Weitere Angaben wie Adpater-Versionen usw erspare ich mir vorerst, da ich momentan davon ausgehe, das der Fehler an der Tastatur sitzt 😞

      Die Frage also: "Wie sende ich true und false über MQTT?

      Vielen Dank für eure Hilfe!

      posted in ioBroker Allgemein
      M
      Marco78
    • RE: Blockly variable Timeout Steuerung

      Hallo,

      es funktioniert auch mit Timeout und einer Variable!

      Die beiden Links im 3. Post haben mir bei der Lösung geholfen…

      Zwar steht dort u.a. das es nicht mehr funktioniert und auch nicht offiziell dokumentiert ist, aber es geht trotzdem.

      Dokumentiert ist es unter: https://github.com/ioBroker/ioBroker.ja ... d#timeouts

      Und das entscheidende sind die ms!

      Sek und Min funktioniert nicht. Nur Millisekunden.

      Ich selbst möchte mit Minuten arbeiten. Dazu versuche ich die Minuten in einer Variable zu übergeben und das Timeout an sich zuvor in einer anderen Variable mit *60000 umgerechnet zu haben.

      Ich hoffe geholfen zu haben.

      posted in Skripten / Logik
      M
      Marco78
    • RE: Flot charts

      @eastcoast:

      Danke, da war mein Denkfehler…

      Der Flot-Editor generiert einfach nur die URL kann aber nicht mehrere (früher) erstellte Charts einfach via Maus-Click verwalten bzw. wieder aufrufen. `
      Doch, "alte" Flots kann man laden.

      Nach dem Ändern den Flot unter einen anderen Namen speichern. Im Register Voreinstellung kann man die dann laden.

      @eastcoast:

      Mit <ip>:8082/flot/edit.html wird also immer nur der zuletzt generierte Chart im Edit-Modus dargestellt.

      Zum erneuten editieren bereits erstellter Charts muss man also die jeweilige Chart-URL verwenden und darin index.htm durch edit.html ersetzen.</ip> `
      Oder den Edit-Button an lassen, dann kann man das geöffnete Flot direkt wieder zum bearbeiten aufrufen.

      Mag sein, das es diese Funktion "damals" noch nicht gab, jetzt geht es aber 😉

      posted in ioBroker Allgemein
      M
      Marco78
    • RE: Frage zu Blockly - schalten

      Doch, gibt es. Habe ich selbst angelegt.

      @Marco78:

      Da das debuggen mit manuellem setzen des Wertes Frost nicht funktioniert, habe ich zum Testen den Dummy im Trigger eingesetzt.

      Ich habe keine Ahnung, ob das stoppen des Skriptes Frost nachher keinen Trigger mehr ausführen kann, aber die Debug-Meldung kam nicht im Log und somit gab es keinen Trigger. `

      Haben den Datenpunkt momentan wieder auf Frost gestellt und den Code geändert.

      Den Trigger Frost und Kalt habe ich mit Feuerzeug und Eis getestet. Funktioniert wie es auch soll.

      11771_3.jpg

      Momentan ist Frost = true und die Einschalttemperatur erreicht. Aber die Schleife läuft nicht durch.

      Außerdem hatten vorhin 2 von 8 CPU-Kerne 100%.

      Meiner Ansicht nach würde die Schleife, wenn sie läuft, immer sehr schnell durchlaufen.

      Und damit Last ohne Ende erzeugen.

      Ich habe schon überlegt ein Timeout von 2 Minuten am Anfang der Schleife zu setzen.

      Aber momentan läuft die Schleife nicht 😞

      Und die Außentemperatur wird jede Minute neu geschrieben. Auf diese zu triggern, dache ich zumindest, würde zu viel Systemlast erzeugen, da fast jede Minute auch ein neuer Wert geschrieben wird.

      Ich hatte den Block auch schon mit sonst falls und sonst aufgebaut. Aber der Trigger kommt ja nur 1 X und damit läuft das nicht ständig durch.

      EDIT: Weiter überlegt, ich trigger auf der Temperatur, dann gibt es ein Ereignis, aber sollte die Temperatur, warum auch immer, konstant bleiben, dann heizt die Heizung munter bis auf 28°C (da schaltet sich sich von alleine aus) und das wäre zu teuer (Stromkosten)!

      Oder wäre es die Lösung, das Skript abhängig vom Zustand Frost ein und aus zu schalten und in einer Schleife, welche alle 2 Minuten durchläuft die Temperaturen abzufragen?

      Im Sommer wird das Skript nicht benötigt. Und meine Frau wird ungnädig, wenn es Nachts überraschender Weise gefroren hat und das Wasser gefroren ist und sie welches aus dem Haus holen muss.

      Dafür braucht man am Ende keine Automatisierung 😞

      posted in Skripten / Logik
      M
      Marco78
    • Frage zu Blockly - schalten

      Hallo,

      das Problem sitzt hier sicherlich vorm Monitor, aber ich finde den Ansatz nicht 😞

      Abhängig von der Außentemperatur möchte ich etwas schalten.

      Da die Außentemperatur (z.Zt) an 4 Stellen zum Schalten notwendig ist, habe ich mit zuerst einen Datenpunkt erstellt, der abhängig von der Temperatur wahr oder unwahr wird.

      Mein Gedanke war, damit das System zu entlasten.

      Außerdem können die Werte so zentral geändert werden 😉

      Alle 5 Minuten wird die Temperatur abgefragt.

      Der Code:
      11771_1.jpg

       <xml xmlns="http://www.w3.org/1999/xhtml"><block type="timeouts_setinterval" id="F[o`Y/`qLp?ZCKJF6VX`" x="-537" y="-462"><field name="NAME">Intervall</field>
          <field name="INTERVAL">5</field>
          <field name="UNIT">min</field>
          <statement name="STATEMENT"><block type="controls_if" id="sYqd]`^5c;#i@Fxo3+4("><mutation else="1"></mutation>
              <value name="IF0"><block type="logic_compare" id=".Ld!1Y8BU/S/3YXeYW#N"><field name="OP">LTE</field>
                  <value name="A"><block type="get_value" id="`mRT]HA=M9iN91c2@@wj"><field name="ATTR">val</field>
                      <field name="OID">mqtt.0.ESP_3.GET.Temp.Temperature</field></block></value> 
                  <value name="B"><block type="math_number" id="=DzQJr)jUiBFL8H{5m1x"><field name="NUM">0.5</field></block></value></block></value> 
              <statement name="DO0"><block type="control" id="?TFu5d#;2KYc%HW5}r@b"><mutation delay_input="false"></mutation>
                  <field name="OID">Datenpunkte.0.Außen.Frost</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE"><block type="logic_boolean" id=":Jo^GV87eKGT^~V.omyp"><field name="BOOL">TRUE</field></block></value></block></statement> 
              <statement name="ELSE"><block type="control" id="!2NMX[/v^PcJwp!F(50F"><mutation delay_input="false"></mutation>
                  <field name="OID">Datenpunkte.0.Außen.Frost</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE"><block type="logic_boolean" id="K8t*|bkA1zFntT-{-U2E"><field name="BOOL">FALSE</field></block></value></block></statement> 
              <next><block type="controls_if" id="io[*Km|pszG`;!9@l0*{"><mutation else="1"></mutation>
                  <value name="IF0"><block type="logic_compare" id="0gA!:@ofqeG({AWaPAKh"><field name="OP">LTE</field>
                      <value name="A"><block type="get_value" id="Kq(+V7Pl|vzee01RvjC3"><field name="ATTR">val</field>
                          <field name="OID">mqtt.0.ESP_3.GET.Temp.Temperature</field></block></value> 
                      <value name="B"><block type="math_number" id="#5EZ+zUaFL#SjJ(dmn41"><field name="NUM">-1</field></block></value></block></value> 
                  <statement name="DO0"><block type="control" id="MCOsRA^K_?z;Wk}_/wnH"><mutation delay_input="false"></mutation>
                      <field name="OID">Datenpunkte.0.Außen.Kalt</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE"><block type="logic_boolean" id="+U^[51x*D%~i-2HTnvb0"><field name="BOOL">TRUE</field></block></value></block></statement> 
                  <statement name="ELSE"><block type="control" id="vdom8BPgD@/;~0U}OHa_"><mutation delay_input="false"></mutation>
                      <field name="OID">Datenpunkte.0.Außen.Kalt</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE"><block type="logic_boolean" id="/6rtG~m%{B/D%wMW@5@!"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement></block></xml> 
      

      Dieses funktionierte heute auch soweit. (Zumindest so weit wie es zu erkennen war)

      Ab (unter) 0,5°C soll es Frost sein, wenn kälter als -1°C soll es kalt sein.

      Ob die Werte irgendwann auch mal wieder "zurück" gehen auf unwahr konnte ich noch nicht testen.

      Damit möchte ich jetzt eine Heizung schalten.

      Der Code:
      11771_2.jpg

       `<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="%*ZDrL6/Z?ajIXp^k#6P" x="-612" y="-263"><field name="OID">Datenpunkte.0.Dummy</field>
          <field name="CONDITION">ne</field>
      
          <statement name="STATEMENT"><block type="debug" id="qMZ/uxJVn[p!zoJ(nzRq"><field name="Severity">error</field>
              <value name="TEXT"><shadow type="text" id="Hz4FJQv!j)g7k@o?|+2z"><field name="TEXT">Frost wurde geändert</field></shadow></value> 
              <next><block type="controls_if" id="DAVuF1CH%)vXosmqjVKz"><value name="IF0"><block type="logic_operation" id=":Lm+dmPJL.sNa3pjG2Vh" inline="false"><field name="OP">AND</field>
                      <value name="A"><block type="logic_compare" id=";pEMG5|7IS+n7VLO{9H^"><field name="OP">EQ</field>
                          <value name="A"><block type="get_value" id="AX?{3[jwdf]iQI(JxCc)"><field name="ATTR">val</field>
                              <field name="OID">Datenpunkte.0.Außen.Frost</field></block></value> 
                          <value name="B"><block type="logic_boolean" id="#y5ubp)X0iuE/b%`xRBc"><field name="BOOL">TRUE</field></block></value></block></value> 
                      <value name="B"><block type="logic_compare" id="b=Ndf2Px~fOpJe+:2t8n"><field name="OP">LT</field>
                          <value name="A"><block type="get_value" id="OtHivsf]n(uu?f1JenI="><field name="ATTR">val</field>
                              <field name="OID">mqtt.0.ESP_4.GET.Temperatur.Temperatur</field></block></value> 
                          <value name="B"><block type="math_number" id="oyG43(hnI!E8]n(A5Y+3"><field name="NUM">3.2</field></block></value></block></value></block></value> 
                  <statement name="DO0"><block type="control" id="nq4Hh7``0hp~yO-X=:dM"><mutation delay_input="false"></mutation>
                      <field name="OID">mqtt.0.ESP_4.SET.GPIO.12</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE"><block type="math_number" id="*LH7;zICzAceJ+`kq;_K"><field name="NUM">1</field></block></value></block></statement> 
                  <next><block type="controls_if" id="Y0?x~cJ#tacmNxq)q;}r"><value name="IF0"><block type="logic_operation" id="SDh^Ca~9P5-oIfMAr{+l" inline="false"><field name="OP">AND</field>
                          <value name="A"><block type="logic_compare" id="[UJ5@ljA~GpXTU-}3?/_"><field name="OP">EQ</field>
                              <value name="A"><block type="get_value" id="q@Z[C[ee%{@tt^tm.yU;"><field name="ATTR">val</field>
                                  <field name="OID">Datenpunkte.0.Außen.Frost</field></block></value> 
                              <value name="B"><block type="logic_boolean" id="Qd]9:6oTqbyS[X]5ssf-"><field name="BOOL">TRUE</field></block></value></block></value> 
                          <value name="B"><block type="logic_compare" id="P).On5c^WG}m@[hTsOLe"><field name="OP">GT</field>
                              <value name="A"><block type="get_value" id="r%|9|Ma:4`mVl:ks-oO^"><field name="ATTR">val</field>
                                  <field name="OID">mqtt.0.ESP_4.GET.Temperatur.Temperatur</field></block></value> 
                              <value name="B"><block type="math_number" id="6FG^|+Gocs*vTzofh{_l"><field name="NUM">4</field></block></value></block></value></block></value> 
                      <statement name="DO0"><block type="control" id="}OfhNOM8EB]Xrf(8fTVy"><mutation delay_input="false"></mutation>
                          <field name="OID">mqtt.0.ESP_4.SET.GPIO.12</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE"><block type="math_number" id="gX;20:da);R3mcQ=!DV1"><field name="NUM">0</field></block></value></block></statement> 
                      <next><block type="controls_if" id="W~XmcVnOnQo@Xb_gPKF!"><value name="IF0"><block type="logic_compare" id="z7e(eB*T|(@3k.u+uUr%"><field name="OP">EQ</field>
                              <value name="A"><block type="get_value" id="s_,pGzMI`q!MQ:PqNCn%"><field name="ATTR">val</field>
                                  <field name="OID">Datenpunkte.0.Außen.Frost</field></block></value> 
                              <value name="B"><block type="logic_boolean" id="bV[s]LK;0+vp:pNh8F1-"><field name="BOOL">FALSE</field></block></value></block></value> 
                          <statement name="DO0"><block type="control" id="zGq27;{O66kJQ?rT6Bql"><mutation delay_input="false"></mutation>
                              <field name="OID">mqtt.0.ESP_4.SET.GPIO.12</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE"><block type="math_number" id="gkXS!i@XLz7RPrR}[BED"><field name="NUM">0</field></block></value></block></statement></block></next></block></next></block></next></block></statement></block></xml>` 
      
      Zum debuggen haben ich den Datenpunkt Frost per Hand geändert.
      
      Dadurch wurde das Skript Frost gestoppt.
      
      Das ist mein erstes Problem, welches ich nicht nachvollziehen kann?!
      
      Passiert das automatisch durch das Überschreiben oder ist das ein Fehler?
      
      Ist der Ansatz überhaupt richtig? Kann es mit der Logik überhaupt irgendwann wieder "warm" werden? (Also Kalt und Frost = unwahr) Oder muss ich da die Temperatur nach oben hin abfragen und den Wert setzen?
      
      Da das debuggen mit manuellem setzen des Wertes Frost nicht funktioniert, habe ich zum Testen den Dummy im Trigger eingesetzt.
      
      Ich habe keine Ahnung, ob das stoppen des Skriptes Frost nachher keinen Trigger mehr ausführen kann, aber die Debug-Meldung kam nicht im Log und somit gab es keinen Trigger.
      
      Nächstes Problem:
      
      Das einschalten ging zwar, aber die gemessene Temperatur, welche das Ausschalten bewirken soll, liegt jetzt schon bei 4,25 und GPIO12 ist immer noch an.
      
      Außerdem bezweifel ich beim Betrachten des Codes, das überhaupt mal etwas anderes als einschalten passiert, da das Trigger-Ereignis ja nur 1 X kommt und die anderen Blöcke mit falls ja nicht abgearbeitet werden können  :o 
      
      Welchen Ansatz muss ich hier verfolgen, damit es so klappt wie es soll?
      
      Und was kann ich ggf. als Anfänger noch besser lösen?
      
      Werden noch weitere Infos benötigt um das Problem nachvollziehen zu können?
      
      Ich danke euch für jeden Lösungsansatz!!![/s]
      
      posted in Skripten / Logik
      M
      Marco78
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo