Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst]Anwesenheit

    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]Anwesenheit

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

      Hallo zusammen,

      ich versuche ein kleines Script zu schreiben, dass die anwesenden Handys im Haus (Aktuell 2) zählt, damit ich mir das in Vis anzeigen lassen kann.

      Leider bin ich totaler Laie im Programmieren und bekomme es nicht hin die Datentypen richtig zu übergeben. Hier ist das was ich geschrieben habe:

      createState('javascript.0.Anwesenheit.anzahl_anwesend', {type: 'number'});
      
      const idHandyDomi = 'tr-064.0.devices.Handy-Domi.active'/*active*/;
      const idHandyNadja = 'tr-064.0.devices.Handy-Nadja.active'/*active*/;
       
      var HandyDomi = 0;
          if(getState(idHandyDomi).val) HandyDomi = 1;
      
       var HandyNadja = 0;
          if(getState(idHandyNadja).val) HandyNadja = 1;
          
      function sammelmeldung() {
          var summe = HandyDomi + HandyNadja;
          setState('javascript.0.Anwesenheit.anzahl_anwesend', !!summe);
      }
       
      sammelmeldung(); // Skriptstart
       
      on(idHandyDomi, function(dp) {
          HandyDomi = 0;
          if(dp.state.val) HandyDomi = 1;
          sammelmeldung();
      });
       
      on(idHandyNadja, function(dp) {
          HandyNadja = 0;
          if(dp.state.val) HandyNadja = 1;
          sammelmeldung();
      });
      
      
      

      Hier ist die Fehlermeldung dazu:

      javascript.0	2020-03-23 23:54:43.308	info	(6849) script.js.common.Anwesenheit: registered 2 subscriptions and 0 schedules
      javascript.0	2020-03-23 23:54:43.307	warn	(6849) at script.js.common.Anwesenheit:17:1
      javascript.0	2020-03-23 23:54:43.307	warn	(6849) at sammelmeldung (script.js.common.Anwesenheit:14:5)
      javascript.0	2020-03-23 23:54:43.307	warn	(6849) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1426:20)
      javascript.0	2020-03-23 23:54:43.307	warn	(6849) You are assigning a boolean to the state "javascript.0.Anwesenheit.anzahl_anwesend" which expects a number. Please fix your code to use a number or change the state type to boolean. This warni
      javascript.0	2020-03-23 23:54:43.303	info	(6849) Start javascript script.js.common.Anwesenheit
      javascript.0	2020-03-23 23:54:43.212	info	(6849) Stop script script.js.common.Anwesenheit
      

      Kann mir jemand helfen?

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Dominik F. last edited by

        @Dominik-F sagte:

        setState('javascript.0.Anwesenheit.anzahl_anwesend', !!summe);                                                                                                                                                                            
        

        !!summe wandelt eine Zahl in einen Logikwert (boolean). Der Datenpunkt erwartet aber eine Zahl.

        Dominik F. 1 Reply Last reply Reply Quote 1
        • Dominik F.
          Dominik F. @paul53 last edited by

          @paul53

          Dank dir, hab die Ausrufezeichen entfernt und nun klappt es.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          399
          Online

          31.9k
          Users

          80.2k
          Topics

          1.3m
          Posts

          javascript
          2
          3
          366
          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