Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] Sensoren überwachen + Benachrichtigung

    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

    [Gelöst] Sensoren überwachen + Benachrichtigung

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

      @paul53 Ja Logo, mit dem Wert kann er nichts vergleichen. Manchmal kann sieht mans einfach nicht. Danke ich teste das so noch mal...

      EDIT..

      Aber nun hängt es noch hier...

      8ecacad8-09df-4969-a621-529820652bef-grafik.png

      36faf90c-ca34-44ce-af27-b3e1851ac97f-grafik.png

      In der Funktion den Code von dir oben.

      id = id.substring(0, id.lastIndexOf('.'));
      if(existsObject(id)) return getObject(id).common.name;
      
      17:44:59.466	info	javascript.0 (607) script.js.VIS.Sensoren_Ueberwachung: registered 0 subscriptions and 1 schedule
      17:44:59.467	error	javascript.0 (607) script.js.VIS.Sensoren_Ueberwachung: ReferenceError: id is not defined
      17:44:59.468	error	javascript.0 (607) at Name (script.js.VIS.Sensoren_Ueberwachung:5:5)
      17:44:59.468	error	javascript.0 (607) at script.js.VIS.Sensoren_Ueberwachung:21:60
      17:44:59.468	error	javascript.0 (607) at script.js.VIS.Sensoren_Ueberwachung:35:3
      

      Irgendwie muss ich doch die Variablen Zigbee/HMIP befüllen mit Namen oder, die tot sind ?

      Und die JS Funktion muss ich doch auch irgendwie starten, aber ich hab gar keinen Block denn ich unter den Zeitplan packen kann.

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

        @d3ltoroxp sagte: In der Funktion den Code von dir oben.

        Dann muss der Übergabeparameter den Bezeichner id erhalten.

        Bild_2022-05-03_175827246.png

        Man kann nicht gleichzeitig den Namen von Zigbee und HmIP in der Funktion auflösen. Die gleiche Funktion muss in der zweiten Schleife (für HmIP) aufgerufen werden.

        D3ltoroxp 1 Reply Last reply Reply Quote 1
        • D3ltoroxp
          D3ltoroxp @paul53 last edited by D3ltoroxp

          @paul53 Ok Danke dir so nun bekomme ich schon mal Namen. Leider alle extra. Gibts hier noch nen Trick, wie ich da eine Liste von bekomme ?

          1d6ee03d-c37d-44b0-b32a-5395874a611d-grafik.png

          Jetzt raff ich noch nicht wie ich die Funktion auch noch mal auf HMIP anwende ? Ich nehme die gleiche Funktion von oben ?

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

            @d3ltoroxp sagte: Gibts hier noch nen Trick, wie ich da eine Liste von bekomme ?

            Ja, verwende ein Array:

            Bild_2022-05-03_192531985.png

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

              @d3ltoroxp sagte: wie ich die Funktion auch noch mal auf HMIP anwende ?

              Wenn in beiden Fällen der Gerätename angezeigt werden soll, dann verwende eine erweiterte Funktion deviceName(id):

              id = id.substring(0, id.lastIndexOf('.'));
              if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
              id = id.substring(0, id.lastIndexOf('.'));
              if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
              
              D3ltoroxp 1 Reply Last reply Reply Quote 0
              • D3ltoroxp
                D3ltoroxp @paul53 last edited by D3ltoroxp

                @paul53 Auf den ersten Blick beide Zeilen identisch. Wenn ich nun noch mehrere andere Hersteller habe, kann ich dann einfach um die Anzahl erweitern ? Bei z.b. 4 unterschiedlichen Herstellern ?

                id = id.substring(0, id.lastIndexOf('.'));
                
                if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
                
                id = id.substring(0, id.lastIndexOf('.'));
                
                if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
                
                id = id.substring(0, id.lastIndexOf('.'));
                
                if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
                
                id = id.substring(0, id.lastIndexOf('.'));
                
                if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;
                

                Edit:

                Ich hab wohl irgendwo noch einen Fehler ??

                javascript.0 (607) script.js.VIS.Sensoren_Ueberwachung: TypeError: Offline_Sensoren.split is not a function
                19:27:40.685	error	javascript.0 (607) at script.js.VIS.Sensoren_Ueberwachung:40:69
                

                Oder muss ich

                deviceName(id)
                

                noch in die JS Funktion so eintragen, anstatt "name" ? Oder gar in die Variable so eintragen ?

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

                  @d3ltoroxp sagte: Wenn ich nun noch mehrere andere Hersteller habe, kann ich dann einfach um die Anzahl erweitern ? Bei z.b. 4 unterschiedlichen Herstellern ?

                  Das hat nichts mit den Herstellern zu tun, sondern mit der unterschiedlichen Objekt-Struktur der Adapter:

                  • Zigbee: device.state
                  • HM-RPC: device.channel.state
                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @D3ltoroxp last edited by

                    @d3ltoroxp sagte: noch in die JS Funktion so eintragen, anstatt "name" ?

                    Nein, es geht auch Name(id). Ist nur nicht so eindeutig, was zurück geliefert wird.

                    @d3ltoroxp sagte in [Gelöst] Sensoren überwachen + Benachrichtigung:

                    Offline_Sensoren.split is not a function

                    Nicht Text in eine Liste wandeln, sondern eine Liste in Text.

                    Bild_2022-05-03_193246211.png

                    D3ltoroxp 1 Reply Last reply Reply Quote 1
                    • D3ltoroxp
                      D3ltoroxp @paul53 last edited by D3ltoroxp

                      @paul53 Vielen vielen Dank. Sieht super aus und scheint auch seine Arbeit zu verrichten.

                      Also wenn noch ein weiterer Adapter dazu kommt muss ich dann noch mal was an der Funktion ändern ?

                      Z.b.Sonoff dazu nehmen möchte, für mich als Noob, sehen die States bei allen drei gleich aus. Woher weiß ich ober Sonoff = device.satet oder device.channel.state oder gar noch eine andere Variante hat ?

                      EDIT::

                      349965e4-21a9-43e7-b0fe-76b7d7926bf9-grafik.png

                      Ich hab das mal auf den Batterie Status umgestellt, auf "Available" sind die Zeitstempel Uhr alt. Aber wenn ich den DP raus kopiere für das Wort, tut sich da gar nichts mehr mit den Zigbee Sensoren, obwohl welche in der Liste sein müssten.

                      7cf59f50-d66d-4bc8-ba1c-8399fd47a9bd-grafik.png

                      Bestimmt falsch geschrieben...

                      {
                        "type": "state",
                        "common": {
                          "name": "Terrasse_FK Battery percent",
                          "type": "number",
                          "unit": "%",
                          "read": true,
                          "write": false,
                          "role": "battery.percent",
                          "min": 0,
                          "max": 100,
                          "icon": "img/battery_p.png"
                        },
                        "from": "system.adapter.zigbee.0",
                        "user": "system.user.admin",
                        "ts": 1582998804679,
                        "_id": "zigbee.0.00158d0002e8bbbc.battery",
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        }
                      }
                      
                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @D3ltoroxp last edited by

                        @d3ltoroxp sagte: Batterie Status umgestellt

                        Links ist die ID zu sehen:

                        Bild_2022-05-03_203046540.png

                        @d3ltoroxp sagte in [Gelöst] Sensoren überwachen + Benachrichtigung:

                        Sonoff dazu nehmen möchte, für mich als Noob, sehen die States bei allen drei gleich aus.

                        Ich kenne die Objekt-Struktur des Sonoff-Adapters nicht. Bitte zeigen!

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

                          @paul53 Noch mals tausend Dank für deine tolle Unterstützung... Heute stell ich mich aber auch an. Danke für deine Geduld.

                          62c7581e-cdf4-4d23-a122-9db8616d951e-grafik.png

                          Ich hoffe das ist das richtige ?

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

                            @d3ltoroxp sagte: Ich hoffe das ist das richtige ?

                            Ja. Du möchtest den Namen "FritzBox_Ladekabel" haben? Das ist ein Kanal, kein Gerät. Hierfür benötigt man eine Funktion channelName(id) mit folgendem Inhalt:

                            id = id.substring(0, id.lastIndexOf('.'));
                            if(existsObject(id) && getObject(id).type == 'channel') return getObject(id).common.name;
                            id = id.substring(0, id.lastIndexOf('.'));
                            if(existsObject(id) && getObject(id).type == 'channel') return getObject(id).common.name;
                            
                            D3ltoroxp 1 Reply Last reply Reply Quote 0
                            • D3ltoroxp
                              D3ltoroxp @paul53 last edited by

                              @paul53 Ach so sorry, der blaue Marker hat nichts zu sagen. War nur zufällig. Ich hätte wäre hier auf Uptime oder auf einen Wifi DP gegangen.

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

                                @d3ltoroxp sagte: auf Uptime oder auf einen Wifi DP gegangen.

                                Den Namen doch sicherlich vom übergeordneten Objekt, das ein "channel"-Objekt ist?

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

                                  @paul53 Ja den Namen von oben...

                                  Kann ich das in dem JS Code mit hinzufügen ? Soll ja alles in einem Script laufen.?

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

                                    @d3ltoroxp sagte: Kann ich das in dem JS Code mit hinzufügen ?

                                    Ja, erstelle eine zweite JS-Funktion channelName(id) mit dem JS Code oben.

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

                                      @paul53 Ah ja jetzt,

                                      adcb2596-bbeb-4f64-80db-5408889739c2-grafik.png

                                      ein zweites und dann einfach für Sonoff dann die andere JS Funktion nutzen... Ich probierst, vielen Dank noch mal. Das andere läuft schon super !!

                                      1 Reply Last reply Reply Quote 0
                                      • D3ltoroxp
                                        D3ltoroxp last edited by

                                        Kann ich eigentlich in der VIS auch den Zeitstempel überprüfen ? Ich würde gerne die Temps z.b. rot färben lassen, wenn der Zeitstämpel x Zeit überschreitet, damit ich weiß, er ist nicht mehr online und der Wert nicht aktuell.

                                        Oder muss ich hier mit einem Script extra DP's mit true / false schalten und damit dann in der VIS arbeiten ?

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

                                          @paul53 Ich hänge hier noch etwas fest.

                                          Ich habe das für HMIP Geräte genau so gemacht, aber da spuckt er gar nichts aus. Obwohl ein Kontakt nicht erreichbar ist.

                                          5e30920a-c576-4e33-aec0-0a405416dde0-grafik.png

                                          Hat sich erledigt, ka. Ich hatte mal mit einer kleineren Zeit getestet da gings, die Zeit wieder hoch gesetzt dann ging's auch.

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          914
                                          Online

                                          31.9k
                                          Users

                                          80.1k
                                          Topics

                                          1.3m
                                          Posts

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