Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Fenster und andere Geräte zählen opt. Alexa Ansagen

    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

    Fenster und andere Geräte zählen opt. Alexa Ansagen

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      patsand @dslraser last edited by

      @dslraser said in Fenster und andere Geräte zählen opt. Alexa Ansagen:

      @patsand

      Hier ein Script zum Alias erstellen. (Javascript, kein Blockly) Dein Relay0 als Beispiel (xxx mußt Du ersetzen)

      // Original-Datenpunkt
      const idOrigin = 'shelly.0.SHSW-XXX.Relay0.Switch'/*Switch*/
      
      // Alias-Datenpunkt
      const idAlias = 'Licht.Licht Decke Wohnzimmer';
      var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
      // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
      nameAlias = 'Licht Decke Wohnzimmer.state';
      // desc = 'per Script erstellt';
      //typeAlias = 'boolean'; // oder 'number'
      // read = "val == 'Ein' ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
      // write = "val ? 'Ein' : 'Aus'";
      // role = 'switch';
      // min = 0; // nur Zahlen
      // max = 100; // nur Zahlen
      //unit = ''; // nur für Zahlen
      states = {false: 'ausgeschaltet', true: 'eingeschaltet'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
      custom = []; // verhindert doppelte Ausführung von history, telegram, mqtt-client, ...
      
      function createAlias(idSrc, idDst) {
        if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
        else {
           var obj = {};
           obj.type = 'state';
           obj.common = getObject(idSrc).common;
           obj.common.alias = {};
           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(min !== undefined) obj.common.min = min;
           if(max !== undefined) obj.common.max = max;
           if(unit) obj.common.unit = unit;
           if(states) obj.common.states = states;
           if(custom && obj.common.custom) obj.common.custom = custom;
           obj.native = {};
           setObject(idDst, obj);
        } 
      }
      
      createAlias(idOrigin, 'alias.0.' + idAlias);
      
      

      zu dem Beispiel aus dem Script- Licht Decke Wohnzimmer (den Alias kannst Du ja nennen wie Du willst)

      Bildschirmfoto 2020-05-23 um 01.50.40.png

      Edit: also Alias erstellen und dann den Alias in die Aufzählung

      Edit2: Du mußt Deinen Wunschnamen und Deine Wunschstruktur in dem Script einstellen und es dann einmal starten. Dann für den zweiten Alias die ID vom nächsten Relay eintragen und den Wunschnamen dafür und wieder speichern. Das Script erstellt jeweils einen Alias für eine ID. Wenn Du Deine Alias erstellt hast, dann kannst Du das Script ausschalten, das ist nur für die einmalige Erstellung. Wenn Du den Alias nicht direkt siehst, oder das Script sagt, der Alias wäre schon vorhanden, dann starte die Javascript Instanz neu und den Browser aktualisieren ist auch immer eine gute Idee.

      Danke, war etwas Arbeit...aber jetzt läuft es so wie es soll 😉

      1 Reply Last reply Reply Quote 2
      • K
        Kueppert last edited by Kueppert

        Ess ist unglaublich...habe jetzt für Lichter, Türen&Fenster und Steckdosen die Skripte nochmal geprüft. Für Steckdosen und Lichter hab ich das neue Skript nochmal hergenommen, angepasst und ausgeführt (vorher alle DPs gelöscht).
        Ich bekomme zum verrecken die HTML in iQontrol (NUR FÜR LICHTER) nicht vernünftig angezeigt...ich sehe, dass das HTML-file korrekt abgelegt wird, und auch aktualisiert wird. Die Anzahl der Lichter ist korrekt - nur die Liste ist immer eine Alte - und ich kann machen was ich will, die bleibt auch alt...
        9f8596c2-a674-41a5-a236-e375ef0d26e1-image.png
        e3fc1941-afce-430d-9d23-8345c41143dc-image.png

        in iQontrol (genauso wie bei den Stecksosen auch) den korrekten Pfad angegeben:
        86fb2ec6-4aaa-44df-9f27-11f0ad059888-image.png

        http://192.168.178.69:8082/iqontrol.meta/WohnungLichter.html
        

        Hatte das Problem hier schon mal jmd? Am Handy auch getestet...gleiche Anzeige...Am Handy sowie anderem Browser...auch falsche HTML-Anzeige (Datei ist ja korrekt). iQontrol will sich nur bei Lichter einfach das HTML nicht daher nehmen und lesen...wo auch immer diese alte Liste her kommt (im Ordner ist keine alte....)

        UPDATE: Kompletter Restart vom ioBroker-Server hat hier erst mal Abhilfe geschaffen...ich werde berichten, wenn sich das wieder ändert ^^

        UPDATE2: iQontrol schnappt sich nach nem Restart des ioBroker-Servers die aktuelle Datei - und behält sie - keine Änderung der HTML-Table wenn diese aktualisiert auf dem Laufwerk liegt 😞

        dslraser 2 Replies Last reply Reply Quote 0
        • dslraser
          dslraser Forum Testing Most Active @Kueppert last edited by

          @Kueppert
          wenn Du in den Objekten den Inhalt des html DP in die Zwischenablage kopierst und dann in eine Textdatei einfügst und speicherst und dann mal in xxx.html umbenennst und dann öffnest, sind da aktuelle Daten drinn ?

          1 Reply Last reply Reply Quote 0
          • dslraser
            dslraser Forum Testing Most Active @Kueppert last edited by

            @Kueppert sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

            UPDATE2: iQontrol schnappt sich nach nem Restart des ioBroker-Servers die aktuelle Datei - und behält sie - keine Änderung der HTML-Table wenn diese aktualisiert auf dem Laufwerk liegt

            ähm, ich kann Dir jetzt gerade nicht folgen ?

            K 1 Reply Last reply Reply Quote 0
            • K
              Kueppert @dslraser last edited by

              @dslraser also, wenn ich den nuc neu starte, zeugt iqontrol die HTML Datei an, wie sie auch befüllt ist aktuell. Ändert sich der Inhalt der HTML aber wieder, zeigt iqontrol weiterhin die alte Liste an.
              Öffne ich die HTML im Browser, ist die korrekt befüllt mit den Status, nur die Anzeige der HTML im iqontrol stimmt nicht mehr.
              Das sieht man auch gut am Zweitstempel oben in meinem Screen. HTML wurde initial um 17 Uhr erzeugt, dann haben sich Zustände geändert, diese wurden im HTML auch eingefügt (zB 18 Uhr), aber iqontrol zeigt weiterhin die States von 17 Uhr an.

              dslraser 1 Reply Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active @Kueppert last edited by dslraser

                @Kueppert
                cache mal geleert ? Welchen Browser nutzt Du mit iQontrol ?
                Das heißt, alle anderen html Dateien wie Fenster, Steckdosen usw. machen was sie sollen, nur Licht nicht ?

                Edit: Licht bei mit, beide Zeitstempel passen

                Screenshot_20200524-193733_Chrome.jpg

                K 1 Reply Last reply Reply Quote 0
                • K
                  Kueppert @dslraser last edited by

                  @dslraser ja, Cache hatte ich schon geleert. Und auch nur dieses eine Skript/die eine HTML macht bei mir Probleme. Am Skript kann es ja nicht liegen, weil die erzeugte HTML bei Aktualisierung der States ja korrekt befüllt ist. Sehr komisch...ggf mache ich iqontrol Mal ganz neu...

                  dslraser 1 Reply Last reply Reply Quote 0
                  • dslraser
                    dslraser Forum Testing Most Active @Kueppert last edited by

                    @Kueppert
                    vielleicht irgendein Leerzeichen oder sowas...? Lösche das doch mal und nenne zum testen die Etage mal etwas anders. Und in 129/130 ist auch Lichter geschrieben ? (ohne ein versehentliches Leerzeichen oder so ?)
                    iQontrol dann auch neu verlinken.

                    K 2 Replies Last reply Reply Quote 1
                    • K
                      Kueppert @dslraser last edited by

                      @dslraser okay, das werde ich morgen vorher noch Mal testen. Heute Abend nicht mehr. Hat mich den letzten Nerv gekostet-neben kranker Tochter 😉 danke dir auf jeden Fall für deine Unterstützung und gutes Nächtle 🙂

                      1 Reply Last reply Reply Quote 1
                      • dslraser
                        dslraser Forum Testing Most Active last edited by

                        @dirk1962 und auch alle anderen Interessierten. Ich habe nochmal über die Batterien Anzeige nachgedacht. Es geht zwar, eine Mischung aus Volt Anzeige und wenn nicht vorhanden lowbat/fullbat anzuzeigen, ist aber eigentlich am Sinn vorbei. Es gibt sehr viele verschiedene Batterien und Schwellwerte, wenn die Batterien leer sind, ist dann immer ein anderer Wert. Also wäre es eine reine Liste zur Ansicht.
                        LOW_BAT oder eben LOWBAT, oder was ähnliches scheinen ja trotzdem überall vorhanden zu sein und zeigt dann ja ebenfalls an, wenn die Batterie leer ist/wird, dann würde auch eine Telegram /EMail Warnung kommen. Ich werde es auf diese Werte umsetzen. (bei einer reinen Voltanzeige hätte ich auch nicht alle meine Batterien erfasst) Man könnte höchstens noch überlegen eine zweite Ansicht zur Verfügung zu stellen, also einmal Batterien (so wie Lichter, Steckdosen, Bewegungsmelder) und dann noch einen zusätzlichen für Volt.

                        K 1 Reply Last reply Reply Quote 2
                        • K
                          Kueppert @dslraser last edited by

                          @dslraser also bei meinen Zigbee-Geräten hab ich nur battery und voltage. Die würden ja dann rausfallen, oder?
                          7e0a5b53-bd5f-4ab8-9a5e-e15dfaf24291-grafik.png

                          1 Reply Last reply Reply Quote 0
                          • K
                            Kueppert last edited by

                            Ich habe eine warn-Meldung (eigentlich 6mal hintereinander die gleiche Meldung) erhalten beim Fenster-Skript. Warum kann ich nicht mal sagen, weil ja der DP alexa2.1.History ein selbst gemachter ist, der im Skript auf die Alexa2.0-Instanz verweist? Ich nutze nur 1 Instanz vom Alexa-Adapter.

                            javascript.0	2020-05-25 09:02:45.128	warn	(24225) at process.topLevelDomainCallback (domain.js:137:15)
                            javascript.0	2020-05-25 09:02:45.128	warn	(24225) at processImmediate (internal/timers.js:456:21)
                            javascript.0	2020-05-25 09:02:45.128	warn	(24225) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                            javascript.0	2020-05-25 09:02:45.128	warn	(24225) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25)
                            javascript.0	2020-05-25 09:02:45.127	warn	(24225) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38)
                            javascript.0	2020-05-25 09:02:45.126	warn	(24225) at Object.<anonymous> (script.js.common.Sonstiges.Status_Türen_&_Fenster_Gesamt:436:80)
                            javascript.0	2020-05-25 09:02:45.124	warn	(24225) getState "alexa2.1.History.serialNumber" not found (3)
                            javascript.0	2020-05-25 09:02:45.124	warn	(24225) at process.topLevelDomainCallback (domain.js:137:15)
                            javascript.0	2020-05-25 09:02:45.123	warn	(24225) at processImmediate (internal/timers.js:456:21)
                            javascript.0	2020-05-25 09:02:45.120	warn	(24225) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5384:37)
                            javascript.0	2020-05-25 09:02:45.120	warn	(24225) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:451:25)
                            javascript.0	2020-05-25 09:02:45.120	warn	(24225) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1052:38)
                            javascript.0	2020-05-25 09:02:45.119	warn	(24225) at Object.<anonymous> (script.js.common.Sonstiges.Status_Türen_&_Fenster_Gesamt:435:87)
                            javascript.0	2020-05-25 09:02:45.117	warn	(24225) getState "alexa2.1.History.serialNumber" not found (3)
                            
                            dslraser 1 Reply Last reply Reply Quote 0
                            • dslraser
                              dslraser Forum Testing Most Active @Kueppert last edited by

                              @Kueppert
                              vielleicht wird das im neuen Javascript Adapter (den ich noch nicht nutze) schärfer geprüft. Deaktiviere mal zum testen diese Funktion.

                              Bildschirmfoto 2020-05-25 um 09.31.17.png

                              dirk1962 1 Reply Last reply Reply Quote 1
                              • K
                                Kueppert @dslraser last edited by Kueppert

                                @dslraser hab gerade festgestellt, dass iQontrol auch die HTML von meinem Türen/Fenster-Skript nicht aktualisiert, sondern die initiale Anzeige beibehält nach System-Neustart (also bei mir gestern).
                                Sieht dann so aus, dass aktuell korrekt im Widget "5" ausgewiesen wird, aber beim Klick auf das Widget eine alte Liste angezeigt wird...ich vermute, hier komme ich nicht drum herum, mal iQontrol zu löschen. Ggf. reicht das ja. Ich sichere die Einstellungen vorher...mal sehen ob es dann klappt.
                                5292d9b4-3bbb-45be-88e7-56daba38f387-grafik.png
                                42a6c183-99a1-4896-a211-5a7be83ddf2a-grafik.png

                                EDIT: und wenn ich den Pfad zur HTML falsch geschrieben hätte, würde er ja garnichts anzeigen können 😕 daher hab ich damit nicht mehr gespielt.

                                dslraser 1 Reply Last reply Reply Quote 0
                                • dslraser
                                  dslraser Forum Testing Most Active @Kueppert last edited by

                                  @Kueppert
                                  kannst Du noch eine Rückmeldung geben, ob das deaktivieren der Funktion (2.Alexa2 Instanz) ausreicht. Ist dann die Fehlermeldung weg ?

                                  K 1 Reply Last reply Reply Quote 0
                                  • K
                                    Kueppert @dslraser last edited by Kueppert

                                    @dslraser na immer 🙂 hab jetzt nur noch 1 Fehlermeldung gefunden. Die alte ist weg mit der Deaktivierung, die ist mir aber jetzt erst mal neu:

                                    javascript.0	2020-05-25 10:30:15.562	warn	(23098) at script.js.common.Telegram.Status_TürenFenster:2:11
                                    javascript.0	2020-05-25 10:30:15.561	warn	(23098) getState "0_userdata.0.Geraete_zaehlen_optional_Ansagen.Geraete_zaehlen.TuerenFenster_zaehlen.Wohnung.08_offene_gekippte_TuerenFenster_Liste_mit_Emojis" not found (3)
                                    

                                    das Feld/Objekt existiert aber und ist auch befüllt:

                                    *Wohnung Tueren und Fensterstatus*Es sind 5 Tueren und Fenster geöffnet ☝️EG Buero Fenster geöffnetEG Gaesteklo Fenster geöffnetEG Küche Fenster geöffnetKinderzimmer-Fenster (R) geöffnetSchlafzimmer-Fenster (R) geöffnet
                                    
                                    dslraser 1 Reply Last reply Reply Quote 0
                                    • dslraser
                                      dslraser Forum Testing Most Active @Kueppert last edited by

                                      @Kueppert sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                                      hab jetzt nur noch 1 Fehlermeldung gefunden.

                                      wie ist das bei Dir eingestellt ?

                                      Bildschirmfoto 2020-05-25 um 10.51.25.png

                                      und das

                                      Bildschirmfoto 2020-05-25 um 10.51.10.png

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        Kueppert @dslraser last edited by

                                        @dslraser wie folgt:
                                        4934cc26-d336-466a-b47e-29f3d59609fc-grafik.png
                                        02915c9e-59d7-4c77-b70a-73c4f21b18d1-grafik.png

                                        dslraser 1 Reply Last reply Reply Quote 0
                                        • dirk1962
                                          dirk1962 @dslraser last edited by

                                          @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                                          @Kueppert
                                          vielleicht wird das im neuen Javascript Adapter (den ich noch nicht nutze) schärfer geprüft. Deaktiviere mal zum testen diese Funktion.

                                          Glaube ich nicht, ich habe schon die Script Engine 4.6.16 installiert und es läuft alles ohne Warnmeldung bei allen Scripten von Dir. Außer den beiden ! beim alexa2 Block, aber die kann man wohl ignorieren.
                                          alexa.png

                                          dslraser 1 Reply Last reply Reply Quote 0
                                          • dslraser
                                            dslraser Forum Testing Most Active @Kueppert last edited by dslraser

                                            @Kueppert
                                            das habe ich noch nicht probiert Tueren und Fenster eigentlich nur Fenster oder nur Türen rein schreiben. Und dann Fenster oder Türen auf wahr oder falsch stellen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            808
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly javascript
                                            41
                                            1186
                                            350111
                                            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