Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. [Eigener Adapter] Alten Wert aus State auslesen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

[Eigener Adapter] Alten Wert aus State auslesen

Scheduled Pinned Locked Moved Entwicklung
adapter entwicklungstate auslesenstate id
6 Posts 3 Posters 500 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    scripz
    wrote on last edited by
    #1

    Hi zusammen,

    hab mich mal an einen eigenen Adapter gemacht. Jetzt habe ich eine frage zur onStateChange Funktion.
    Wenn ich mir den State ausgeben lasse, kommen ein paar Werte raus. Nur leider kein "oldValue" wie es z.B. bei den Javascript's funktioniert.

    Könnt ihr mir sagen, ob das überhaupt geht und wenn ja wie?

    Hintergrund ist, ich möchte einen Wert editieren und dann die Differenz zwischen altem und neuem Wert ausrechnen.

    Danke und Gruß

    M 1 Reply Last reply
    0
    • S scripz

      Hi zusammen,

      hab mich mal an einen eigenen Adapter gemacht. Jetzt habe ich eine frage zur onStateChange Funktion.
      Wenn ich mir den State ausgeben lasse, kommen ein paar Werte raus. Nur leider kein "oldValue" wie es z.B. bei den Javascript's funktioniert.

      Könnt ihr mir sagen, ob das überhaupt geht und wenn ja wie?

      Hintergrund ist, ich möchte einen Wert editieren und dann die Differenz zwischen altem und neuem Wert ausrechnen.

      Danke und Gruß

      M Online
      M Online
      MCU
      wrote on last edited by
      #2

      @scripz Kannst du vielleicht einen Teil oder Alles vom Adapter zeigen, damit man sich ein wenig vorstellen, wie Du da programmiert hast?

      NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      S 1 Reply Last reply
      0
      • M MCU

        @scripz Kannst du vielleicht einen Teil oder Alles vom Adapter zeigen, damit man sich ein wenig vorstellen, wie Du da programmiert hast?

        S Offline
        S Offline
        scripz
        wrote on last edited by scripz
        #3

        @MCU
        Hey,

        viel Programmiert hab ich in der Hinsicht dann noch nicht. Template erstellt und in der onStateChange Funktion das hier:

        onStateChange(id, state) {
        		if (state) {
        			// The state was changed
        			if(id.includes(".fuel.carKilometres")){
        				this.log.info(JSON.stringify(state));
        **if(*oldval* < state.val){
        //Mache Sachen
        }**
        			}
        			
        		} else {
        			// The state was deleted
        			this.log.info(`state ${id} deleted`);
        		}
        	}
        

        Im endeffekt suche ich etwas um oldval zuzuweisen, also den alten Wert vom State zu vergleichen

        M 1 Reply Last reply
        1
        • S scripz

          @MCU
          Hey,

          viel Programmiert hab ich in der Hinsicht dann noch nicht. Template erstellt und in der onStateChange Funktion das hier:

          onStateChange(id, state) {
          		if (state) {
          			// The state was changed
          			if(id.includes(".fuel.carKilometres")){
          				this.log.info(JSON.stringify(state));
          **if(*oldval* < state.val){
          //Mache Sachen
          }**
          			}
          			
          		} else {
          			// The state was deleted
          			this.log.info(`state ${id} deleted`);
          		}
          	}
          

          Im endeffekt suche ich etwas um oldval zuzuweisen, also den alten Wert vom State zu vergleichen

          M Online
          M Online
          MCU
          wrote on last edited by
          #4

          @scripz Also bei Zefau sieht es anders aus:

          https://github.com/Zefau/ioBroker.jarvis/blob/master/jarvis.js

          Zeile 171

          adapter.on('stateChange', function(id, state)

          NUC i7 64GB mit Proxmox ---- https://mcuiobroker.gitbook.io/jarvis-infos/ Aktualisierungen der Doku auf Instagram verfolgen -> https://www.instagram.com/mcuiobroker
          Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

          1 Reply Last reply
          0
          • LoredoL Offline
            LoredoL Offline
            Loredo
            Developer
            wrote on last edited by
            #5

            Konnte diese Frage jemals geklärt werden?

            Der Unterschied oben ist ja lediglich, dass der eine Adapter als ES6 Klasse entwickelt wurde und der andere nicht. Die Grundfrage, woher man korrekterweise den vorigen Wert bekommt, um Logiken analog zu den Möglichkeiten im JavaScript Adapter umzusetzen, stellt sich (mir) nach wie vor.

            Kann da jemand helfen?

            LoredoL 1 Reply Last reply
            0
            • LoredoL Loredo

              Konnte diese Frage jemals geklärt werden?

              Der Unterschied oben ist ja lediglich, dass der eine Adapter als ES6 Klasse entwickelt wurde und der andere nicht. Die Grundfrage, woher man korrekterweise den vorigen Wert bekommt, um Logiken analog zu den Möglichkeiten im JavaScript Adapter umzusetzen, stellt sich (mir) nach wie vor.

              Kann da jemand helfen?

              LoredoL Offline
              LoredoL Offline
              Loredo
              Developer
              wrote on last edited by
              #6

              Never mind. Ich schätze jeder Adapter muss seine eigene Historie aller Objekte pflegen 😞

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              647

              Online

              32.4k

              Users

              81.4k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe