Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Aus Esp32 Soc wert soll Tasmota Gosund schalten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Aus Esp32 Soc wert soll Tasmota Gosund schalten

    This topic has been deleted. Only users with topic management privileges can see it.
    • sralus
      sralus last edited by

      Hallo
      Ich habe ein ESP32 welches mein JK-BMS ausließt.
      Ein wert davon ist der SOC wert. Diesen möchte ich gerne nutzen um damit mein Gosund Sp1 (Sonoff) Adapter zu schalten.
      Also bei Soc wert <70 soll der Sonoff adaper an gehen und bei Soc Wert >50 wieder aus.

      Hierfür müsste der wert von dem sonoff adapert "tasmota POWER" von FALSE auf TRUE gestetzt werden

      und der Soc wert aus jkbms/Data/Percent Remain ausgelesen werden.

      Könnte mir einer sagen wie ich das in Blockly umsetzten kann...

      Vielen Dank vorab

      D paul53 2 Replies Last reply Reply Quote 0
      • D
        dismaster @sralus last edited by dismaster

        @sralus dafür müsstest Du Dir einen zwischen Schritt bauen, welcher den vorherigen und neuen Wert speichert.
        Also sagen wir, es war vorher <50 und ist jetzt >=50 dann schalten.
        Gleiches anders herum.

        Also dann wie folgt:
        wenn updata von "jkbms/Data/Percent"
        -> dann update Wert(alt) mit Wert(Neu)
        -> dann update Wert(neu) mit "jkbms/Data/Percent"

        Verstehst Du das?
        🙂

        Grüße

        sralus 2 Replies Last reply Reply Quote 0
        • sralus
          sralus @dismaster last edited by

          @dismaster
          Hallo
          Vielen Dank für die Antwort aber leider fehlt mir das nötige wissen um das so umzusetzten.
          Würdest du mir evtl. ein beispiel von Blockly erstellen ?

          Dann hätte ich den aufbau schonmal richtig.

          Dann würde ich die nötigen Daten punkte dort eintragen.

          Vielen Dank vorab

          Gruß
          Sralus

          1 Reply Last reply Reply Quote 0
          • sralus
            sralus @dismaster last edited by

            @dismaster
            Hallo so in etwa aber läuft nicht wirklich ..
            schaltung.jpg

            oder so _

            
            on({id: [].concat(['mqtt.0.Data.Percent_Remain']), change: "ne"}, async function (obj) {
              let value = obj.state.val;
              let oldValue = obj.oldState.val;
              if (getState("mqtt.0.Data.Percent_Remain").ack <= 50) {
                setState("sonoff.0.Tasmota.POWER"/*Tasmota POWER*/, true);
              } else {
                if (getState("mqtt.0.Data.Percent_Remain").ack == 50) {
                  setState("sonoff.0.Tasmota.POWER"/*Tasmota POWER*/, false);
            
            

            Evtl. weißt du ja was ich falsch gemacht habe

            1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @sralus last edited by paul53

              @sralus sagte: bei Soc wert <70 soll der Sonoff adaper an gehen und bei Soc Wert >50 wieder aus.

              Sind die Vergleiche nicht falsch herum?
              Du meinst, die Gosund Sp1 soll geschaltet werden?

              Prinzip 2-Punkt-Regler:

              Blockly_temp.JPG

              @sralus sagte in Aus Esp32 Soc wert soll Tasmota Gosund schalten:

              if (getState("mqtt.0.Data.Percent_Remain").ack <= 50) {
              

              Vergleich mit Bestätigung anstelle von Wert?

              sralus 1 Reply Last reply Reply Quote 0
              • sralus
                sralus @paul53 last edited by

                @paul53 Hallo
                Vielen Dank für deine Antwort.
                Ich habe es jetzt so umgestetz:
                A3.jpg A2.jpg A1.jpg

                Der code sieht dann so aus :

                var akator;
                
                
                akator = getState("sonoff.0.Tasmota.POWER").val;
                on({id: "mqtt.0.Data.Percent_Remain"/*jkbms/Data/Percent_Remain*/, change: "ne"}, async function (obj) {
                  let value = obj.state.val;
                  let oldValue = obj.oldState.val;
                  if ((obj.state ? obj.state.val : "") < 10) {
                    akator = false;
                  } else if ((obj.state ? obj.state.val : "") > 19) {
                    akator = true;
                  }
                  if (akator != getState("sonoff.0.Tasmota.POWER").val) {
                    setState("sonoff.0.Tasmota.POWER"/*Tasmota POWER*/, akator);
                  }
                });
                
                

                Im Ordner Protokolle kommt dann aber :
                2024-04-01 14:33:11.384 - info: admin.0 (2268) ==> Connected system.user.admin from ::ffff:192.168.0.33
                2024-04-01 14:33:14.968 - info: javascript.0 (62589) Stop script script.js.Boiler
                2024-04-01 14:33:16.844 - info: javascript.0 (62589) Start javascript script.js.Boiler
                2024-04-01 14:33:16.849 - info: javascript.0 (62589) script.js.Boiler: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                2024-04-01 14:33:16.852 - info: javascript.0 (62589) State value to set for "javascript.0.scriptProblem.Boiler" has to be type "number" but received type "boolean"
                2024-04-01 14:33:21.249 - info: admin.0 (2268) <== Disconnect system.user.admin from ::ffff:192.168.0.33 javascript

                Leider weiß ich nicht wie ich jetzt wo was ändern muss damit das auslesen des SOC wert das Gosund Sp1 relais schaltet ..

                Vielen Dank vorab
                Sralus

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @sralus last edited by

                  @sralus sagte: State value to set for "javascript.0.scriptProblem.Boiler" has to be type "number" but received type "boolean"

                  "POWER" ist vom Typ "Zahl"? Dann ändere falsch in 0 und wahr in 1.

                  sralus 2 Replies Last reply Reply Quote 1
                  • sralus
                    sralus @paul53 last edited by

                    @paul53 Danke für deine Mühe !!

                    Es läuft teilweise schon ganz ok..
                    Manchmal dauert es sehr lange bis das relais schaltet.
                    im LOG bekomm ich jetzt diese meldung:

                    javascript.0
                    	2024-04-01 22:12:08.946	info	script.js.common.Boiler: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                    javascript.0
                    	2024-04-01 22:12:08.945	info	script.js.common.Boiler: subscribe: {"pattern":{"id":"mqtt.0.Data.Percent_Remain","change":"ne","q":0},"name":"script.js.common.Boiler"}
                    javascript.0
                    	2024-04-01 22:12:08.945	info	script.js.common.Boiler: getState(id=sonoff.0.Tasmota.POWER, timerId=undefined) => {"val":false,"ack":true,"ts":1712002283354,"q":0,"from":"system.adapter.sonoff.0","user":"system.user.admin","lc":1712002283354}
                    javascript.0
                    	2024-04-01 22:12:08.940	info	Start javascript script.js.common.Boiler
                    javascript.0
                    	2024-04-01 22:12:08.874	info	Stop script script.js.common.Boiler
                    javascript.0
                    	2024-04-01 22:12:00.190	info	script.js.common.Boiler: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                    javascript.0
                    	2024-04-01 22:12:00.171	info	Start javascript script.js.common.Boiler
                    

                    schema11.jpg

                    Ich denke mal ich habe noch einen kleinen Fehler den ich nicht erkenne...

                    sralus 1 Reply Last reply Reply Quote 0
                    • sralus
                      sralus @sralus last edited by

                      @sralus Sorry --- der feheler lag in der Zahl .. 1 und 0 die hatte ich nicht als zahl gewählt...

                      Danke es läuft alles super

                      1 Reply Last reply Reply Quote 0
                      • sralus
                        sralus @paul53 last edited by

                        @paul53 wirk.jpg

                        Hallo Paul
                        Danke für deine Unterstützung und hilfe eim meinem Vorhaben. !!!
                        Es rennt unt macht was es soll - DANKE

                        Wäre es möglich das skript um eine weitere abfrage zu erweitern ?
                        Und zwar möchte ich das (wie in der Grafik zu sehen ) bei einem wert der Wikleistung soll das skript das relais ausschalten.

                        Also Wirkleistung größer als zb. 2000W relais aus. sonnst soll das skript genau so laufen wie es jetzt geht,

                        Das problem ist das wenn ich meine waschmaschiene oder Spühlmaschien anmache und zusätzlich das skript meinen Warmasser boiler startet - weil SOC wer ok dann habe ich 2,2 KW Boiler und bei heizfase von Spühl bzw Waschmaschine ncohmal ~2 KW.. dann habe ich +/- 4,5KW auf einer Fase.

                        Somit würde ich dem entgegenwirken das das skript die Wirkleistund berücksichtigt.

                        Vielen Dank vorab
                        Gruß

                        Sralus

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @sralus last edited by

                          @sralus sagte: Wirkleistung größer als zb. 2000W relais aus.

                          Was sagt die Wirkleistung aus, d.h. wo wird sie gemessen?

                          sralus 1 Reply Last reply Reply Quote 0
                          • sralus
                            sralus @paul53 last edited by

                            @paul53 Die Wirkleistung wir von meinem wechselrichter gemessen - Active AC.

                            Also solange kein verbraucher wie Waschmaschien oder Spühlmachiene läuft habe ich eine grundlast von ca 150W - startet das Skipt bei x Soc wert dann schaltet es meinen Heizstab für mein Warmwasser boiler - der zieht ca 2 KW- würde ich dann die Waschmachiene starten soll das script anhand der Wirkleistung erkennen das es abschalten soll bzw sollte der wert wieder unter dem sein was ich eingestellt habe darf das skript wieder anhand des SOC wert starten..
                            wirkleistung.jpg

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @sralus last edited by

                              @sralus sagte: Die Wirkleistung wir von meinem wechselrichter gemessen - Active AC.

                              Die AC-Leistung passt sich dem Verbrauch an? Dann versuche es mal so:

                              Blockly_temp.JPG

                              sralus 1 Reply Last reply Reply Quote 0
                              • sralus
                                sralus @paul53 last edited by

                                @paul53 !!! TOP - wer es kann der kann es .. Danke
                                Schade ist nur das dieses Solaranzeige Image die werte des wechselrichter per PHP ausließt und das immer im minuten intervall. Aber sobald der wert geschrieben wird schaltet das skript.

                                Die Werte wann die Wirkleistung eingreifen soll muss dann einmalig auf beiden seiten im skipt eingtragen werden oder ?
                                Rechts im skipt ist dann quasi die routine für die Abfrage der Wirkleistung oder ?
                                Und die routine für die Freigabe sind werte damit die SOC routine im linken skript starten darf ?
                                auf jeden fall macht alles das was es soll und rennt besser als die Automatisierung im Solaranzeige Image.

                                So habe ich es nach deiner Anweißung zusamen gestellt. (musste doch wahr & falsch setzten denn bei 0&1 kamm wieder die meldung im LOG:

                                You are assigning a number to the state "sonoff.0.Tasmota.POWER" which expects a boolean. Please fix your code to use a boolean or change the state type to number. This warning might become an error in future versions.
                                

                                Boiler mit AC.jpg

                                Vielen Dank nochmals ...

                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @sralus last edited by

                                  @sralus
                                  Lass das Intervall weg! Das ist verheerend.

                                  sralus 1 Reply Last reply Reply Quote 0
                                  • sralus
                                    sralus @paul53 last edited by

                                    @paul53
                                    Hallo
                                    Es läuft alles soweit klasse !!
                                    Leider möchte ich gerne das das skript entweder noch die zusatz option PV-Power oder zeitlich eine Abschaltung macht,
                                    Ich habe mal versucht das per Uhrzeit zu steuern aber das klappt so noch nicht, (siehe Bild)
                                    Hättest du evtl. einen vorschlag für das skript ?

                                    Vielen Dank
                                    Sralus
                                    SkriptmitUhr.jpg

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @sralus last edited by paul53

                                      @sralus sagte: per Uhrzeit zu steuern aber das klappt so noch nicht

                                      Zu welcher Uhrzeit soll was passieren?
                                      Poste bitte den Blockly-Export in Code tags, denn ich habe das Skript längst gelöscht.
                                      Auf jeden Fall stimmt die Reihenfolge bei Skriptstart nicht.

                                      sralus 1 Reply Last reply Reply Quote 0
                                      • sralus
                                        sralus @paul53 last edited by

                                        @paul53
                                        Also wenn der Boiler gegen mittags durch den PV überschuss aufgeheitzt ist dann ist er nach ca 1 -2 Stunden maximal aufgeheitzt, Alles gut so soll es sein,
                                        Solange der SOC wert der Batterie dann aber noch im eingestellten bereich ist würde der Boiler beim Duschen ja wieder aufheizen und dann nicht den PV überschuss nutzen sondern meine Batterie (speicher) nutzen.

                                        Somit müsste ich zu der Schaltung entweder noch eine PV kontrolle einbauen. Also wenn PV unter 50W dann auch aus. Das wäre natürlich super das so schalten zu können.
                                        Also SOC + AC leistung und PV leistung,

                                        Oder alternativ einfach um 17:00 Uhr soll der Boiler nicht mehr heizen,

                                        So habe ich mir das in etwa vorgestellt.

                                        var freigabe, akator, wirkleistung;
                                        
                                        
                                        freigabe = akator ? wirkleistung < 200 : wirkleistung < 2800;
                                        akator = getState('sonoff.1.Tasmota1.POWER').val;
                                        wirkleistung = getState('mqtt.0.solaranzeige.3.ac_wirkleistung').val;
                                        on({ id: 'mqtt.0.Data.Percent_Remain' /* jkbms/Data/Percent_Remain */, change: 'any' }, async (obj) => {
                                          let value = obj.state.val;
                                          let oldValue = obj.oldState.val;
                                          if (freigabe) {
                                            if ((obj.state ? obj.state.val : '') < 70) {
                                              akator = false;
                                            } else if ((obj.state ? obj.state.val : '') > 71) {
                                              akator = true;
                                            }
                                            if (akator != getState('sonoff.1.Tasmota1.POWER').val) {
                                              setState('sonoff.1.Tasmota1.POWER' /* Tasmota1 POWER */, akator);
                                            }
                                          }
                                        });
                                        
                                        on({ id: 'mqtt.0.solaranzeige.3.ac_wirkleistung' /* solaranzeige/3/ac_wirkleistung */, change: 'ne' }, async (obj) => {
                                          let value = obj.state.val;
                                          let oldValue = obj.oldState.val;
                                          if ((obj.state ? obj.state.val : '') < 200) {
                                            freigabe = 1;
                                          } else if ((obj.state ? obj.state.val : '') > 2800) {
                                            freigabe = 0;
                                            if (getState('sonoff.1.Tasmota1.POWER').val) {
                                              setState('sonoff.1.Tasmota1.POWER' /* Tasmota1 POWER */, false);
                                            }
                                          }
                                        });
                                        
                                        //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0N2YXJpYWJsZXMlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyc21jJTJCYi5WTGFfVWlJTlVLdE5ITSUyMiUzRWZyZWlnYWJlJTNDJTJGdmFyaWFibGUlM0UlM0N2YXJpYWJsZSUyMGlkJTNEJTIyJTI1eC5odCU2MEd2ZGppX2VKSGxaaTMlN0MlMjIlM0Vha2F0b3IlM0MlMkZ2YXJpYWJsZSUzRSUzQ3ZhcmlhYmxlJTIwaWQlM0QlMjJPaW9RaEZXeWw0ciU0MCU3RCUyQ1NYY0ZaJTdDJTIyJTNFd2lya2xlaXN0dW5nJTNDJTJGdmFyaWFibGUlM0UlM0MlMkZ2YXJpYWJsZXMlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjI3ciU1RG00SHd+JTJCQnElNUJGZyUzRlMlMjVzN2UlMjIlMjB4JTNEJTIyLTMxMzclMjIlMjB5JTNEJTIyLTIxMzclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnNtYyUyQmIuVkxhX1VpSU5VS3ROSE0lMjIlM0VmcmVpZ2FiZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY190ZXJuYXJ5JTIyJTIwaWQlM0QlMjIuJTNBaDZvSm1COG94V002JTJDNlBDenAlMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMjBRdGIlMkIlMjNRJTYwayUzRiU1RUYlNjB+eGVxeDYlMkIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNXguaHQlNjBHdmRqaV9lSkhsWmkzJTdDJTIyJTNFYWthdG9yJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEhFTiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMiUyNUF6JTNGJTJDJTNCUiUyNSU3QiU2MEpaJTVEayU1QnYlMjQyJTI0aiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFTFQlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJzJTdDcyUyNGU0TiU3QlJBcCU0MGZ0S2UyQ00lNDAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9pb1FoRld5bDRyJTQwJTdEJTJDU1hjRlolN0MlMjIlM0V3aXJrbGVpc3R1bmclM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJCJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMkhYJTJDNSE5JTNCeTFsajMlMkJsNyUzQiU2MDZmVyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTIwMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJFTFNFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyJTdDYSUzRnNYIUxqTG91LkdxYSUyRjEhM0wlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUxUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIyT2lJKSU3QiU3RHZFWGRuJTNGVkxUWiU0MFp3SyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyT2lvUWhGV3lsNHIlNDAlN0QlMkNTWGNGWiU3QyUyMiUzRXdpcmtsZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIya0JzJTdDNE1EYjklM0QlNUUlM0ElN0JkcTVrKVhwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMjgwMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19zZXQlMjIlMjBpZCUzRCUyMiUyNSU1RS5ER2FWbnNxJTJGIVdjXyU3QnAtSU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNXguaHQlNjBHdmRqaV9lSkhsWmkzJTdDJTIyJTNFYWthdG9yJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyJTdDU1pJOS4lNjBvRl8oSTV4JTJDS2h3VzclMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0Vzb25vZmYuMS5UYXNtb3RhMS5QT1dFUiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJaSlhpLSU3QkclM0FQJTNGN2MlMjQlM0IlN0J1JTQwdyUyQ2clMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMk9pb1FoRld5bDRyJTQwJTdEJTJDU1hjRlolN0MlMjIlM0V3aXJrbGVpc3R1bmclM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJUX0QlNjBQclI1NGtTX2VvMDA0VGkhJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXZhbCUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFbXF0dC4wLnNvbGFyYW56ZWlnZS4zLmFjX3dpcmtsZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbiUyMiUyMGlkJTNEJTIyLU1rX21iLWVzIWNxJTNETVZYZyUyQyU1QkglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VtcXR0LjAuRGF0YS5QZXJjZW50X1JlbWFpbiUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFYW55JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMkNzJTVEZTAlNUJhdSUyQyUyNDUwOC1SUmF+JTJDdSUyMiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnZhcmlhYmxlc19nZXQlMjIlMjBpZCUzRCUyMmIxX356JTVCJTQwJTNGKH5aayUyNUdzYWQlMkIlMkI0JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjJzbWMlMkJiLlZMYV9VaUlOVUt0TkhNJTIyJTNFZnJlaWdhYmUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbHNfaWYlMjIlMjBpZCUzRCUyMiUyQ2MlN0RTYX4lN0R5RCU1RSU3RCU1RUs5eWdZJTdDM1olMjIlM0UlM0NtdXRhdGlvbiUyMGVsc2VpZiUzRCUyMjElMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMklGMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmxvZ2ljX2NvbXBhcmUlMjIlMjBpZCUzRCUyMnBxJTJGJTNEWCUyQkk3SEYlM0YlNjBRRTFnJTVEUFV4JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX3NvdXJjZSUyMiUyMGlkJTNEJTIydlpaLU0pVFolMjVfclglMkJXfnRnYzZsJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXN0YXRlLnZhbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTI1JTJGKCU1RW9tbWlJaiUyRjQ2RyUyNCUyRnclN0N5cSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTcwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJPZSUzRCh+QUMyJTIzJTdDajglNUR+ZkQ0JTJCJTIzJTNGJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjV4Lmh0JTYwR3ZkamlfZUpIbFppMyU3QyUyMiUzRWFrYXRvciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJWQ1MlN0R2bmYqMVBldyU1RURZdHNyJTNGLSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYxJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyJTYwJTNCQSUyNFczXzFMISpMJTVENG1pU3RpUSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9QJTIyJTNFR1QlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9zb3VyY2UlMjIlMjBpZCUzRCUyMl9lN3M2MU5xMEl0T0V1JTVCcipEb3klMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFc3RhdGUudmFsJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMkZid0QyJTdDek10JTdEbTQlNDApJTI0a2MlMkNhSiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5VTSUyMiUzRTcxJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjJNJTVFTyU0MFNkJTJDZHVFc2pJUVYlM0ZlckxuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjV4Lmh0JTYwR3ZkamlfZUpIbFppMyU3QyUyMiUzRWFrYXRvciUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjI1SG91ZW1JQmk0OFVERSUyRiU3RDFSJTdDJTVFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyc0RQJTJDdHcyVEt+MDN0a3kya0IlMjM0JTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfY29tcGFyZSUyMiUyMGlkJTNEJTIyZihocXJzalklNDB+eHE3VjcuUmJVJTQwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VORVElM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfZ2V0JTIyJTIwaWQlM0QlMjJnN0ElM0JFNihHJTNBJTYwam0lN0Nua0tNJTJCUzklMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMiUyNXguaHQlNjBHdmRqaV9lSkhsWmkzJTdDJTIyJTNFYWthdG9yJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyeUZKa2UlM0QlM0I5dmQuRiU3QkJ0YUZ4cjElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0Vzb25vZmYuMS5UYXNtb3RhMS5QT1dFUiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8wJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIydWgzOGRVSTglMkM0OEwoWihsaVVnUCUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXNvbm9mZi4xLlRhc21vdGExLlBPV0VSJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX2dldCUyMiUyMGlkJTNEJTIydGdib04pJTNCJTVCU2NMZ1Ftb0RoOHgzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVkFSJTIyJTIwaWQlM0QlMjIlMjV4Lmh0JTYwR3ZkamlfZUpIbFppMyU3QyUyMiUzRWFrYXRvciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb24lMjIlMjBpZCUzRCUyMmVVT0FPSXMpSyU1RVZNJTYwfiUyRnltU3JYJTIyJTIweCUzRCUyMi0yMzM3JTIyJTIweSUzRCUyMi0yMDM3JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFbXF0dC4wLnNvbGFyYW56ZWlnZS4zLmFjX3dpcmtsZWlzdHVuZyUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFbmUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sc19pZiUyMiUyMGlkJTNEJTIyUSUyQiUzRGclNUVSJTVCY1ElMkYzJTI1JTI1MyUyMyU0MDUlMkN+JTJCJTIyJTNFJTNDbXV0YXRpb24lMjBlbHNlaWYlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjI3JTIzSjUtfiUyNU0pKWIlMjVoMURCbXEhJTNBJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT1AlMjIlM0VMVCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX3NvdXJjZSUyMiUyMGlkJTNEJTIyJTNCMyUyNFUwUSU3QyUyQnhvZ1JxJTI1YlVlT2ppJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQVRUUiUyMiUzRXN0YXRlLnZhbCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyciUzRC4lM0Rta0pBJTI0RU8lNjBYOThkSFhKJTQwJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMjAwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ2YXJpYWJsZXNfc2V0JTIyJTIwaWQlM0QlMjI5KFclMkMlN0RaY1FRSEk4ZGItdWQpQnElMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJWQVIlMjIlMjBpZCUzRCUyMnNtYyUyQmIuVkxhX1VpSU5VS3ROSE0lMjIlM0VmcmVpZ2FiZSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyJTI1NiU3Q3hjdEVqcW0lM0FqRXQlNjAlM0RDSXUlM0YlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjElMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjIlMjVHTUJqZE8lM0ZYZDRodU8yLm54ZDglMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUdUJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJBJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fc291cmNlJTIyJTIwaWQlM0QlMjJHJTI0ci1VVEdweC0lNjA4JTdCU2pfdCUyNSklMkIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFc3RhdGUudmFsJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlMkIoJTJGJTNCQlMlNUIlMkMlMkJlU28uTnU2SW1wJTJCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFMjgwMCUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyRE8xJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydmFyaWFibGVzX3NldCUyMiUyMGlkJTNEJTIySSFJKiUyQmslN0RYNEQlNjAlM0EweUdqRlRBWiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlZBUiUyMiUyMGlkJTNEJTIyc21jJTJCYi5WTGFfVWlJTlVLdE5ITSUyMiUzRWZyZWlnYWJlJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJWQUxVRSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm1hdGhfbnVtYmVyJTIyJTIwaWQlM0QlMjIlNUJHMGclNjAoLmRkJTI0ak5qcSUyNUwlNjB1alolMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJ2YkpQJTI0KWMlMjR0YnFoJTNBbEklN0Q1UFJwJTIyJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIySUYwJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyZ2V0X3ZhbHVlJTIyJTIwaWQlM0QlMjJqUUYhcHRvJTQwWmE2LlFkakwlM0JRKmIlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0Vzb25vZmYuMS5UYXNtb3RhMS5QT1dFUiUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjJpZVF4Ni1nazZCJTQwRGgzRiU3QmN6NSUyRiUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRXNvbm9mZi4xLlRhc21vdGExLlBPV0VSJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyQiUzRGslMjUlM0Z1N0tEIWVpJTJDQ1IlM0ZVJTI1YTAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnhtbCUzRQ==
                                        

                                        Vielen Dank
                                        Gruß
                                        Sralus

                                        paul53 2 Replies Last reply Reply Quote 0
                                        • paul53
                                          paul53 @sralus last edited by

                                          @sralus
                                          Du hast nicht den Blockly-Export (XML) gepostet. Möchtest du in Javascript weiter programmieren?

                                          sralus 1 Reply Last reply Reply Quote 0
                                          • sralus
                                            sralus @paul53 last edited by

                                            @paul53 Sorry
                                            hoffe das ist nun richtig ..

                                            common.Boiler_mit_AC_-_keller.xml

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            868
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            28
                                            1371
                                            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