diff --git a/types/iobroker/index.d.ts b/types/iobroker/index.d.ts index 0ace066307..29ac96edb5 100644 --- a/types/iobroker/index.d.ts +++ b/types/iobroker/index.d.ts @@ -908,24 +908,24 @@ declare global { // tslint:disable:unified-signatures setState( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, callback?: SetStateCallback, ): void; setState( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, callback?: SetStateCallback, ): void; setState( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, options: unknown, callback?: SetStateCallback, ): void; setState( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, options: unknown, callback?: SetStateCallback, @@ -933,41 +933,41 @@ declare global { /** Writes a value into the states DB. */ setStateAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack?: boolean, ): Promise>; setStateAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, options?: unknown, ): Promise>; setStateAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, options: unknown, ): Promise>; /** Writes a value into the states DB only if it has changed. */ setStateChanged( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, callback?: SetStateChangedCallback, ): void; setStateChanged( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, callback?: SetStateChangedCallback, ): void; setStateChanged( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, options: unknown, callback?: SetStateChangedCallback, ): void; setStateChanged( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, options: unknown, callback?: SetStateChangedCallback, @@ -975,41 +975,41 @@ declare global { /** Writes a value into the states DB only if it has changed. */ setStateChangedAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack?: boolean, ): Promise>; setStateChangedAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, options?: unknown, ): Promise>; setStateChangedAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, options: unknown, ): Promise>; /** Writes a value (which might not belong to this adapter) into the states DB. */ setForeignState( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, callback?: SetStateCallback, ): void; setForeignState( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, callback?: SetStateCallback, ): void; setForeignState( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, options: unknown, callback?: SetStateCallback, ): void; setForeignState( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, options: unknown, callback?: SetStateCallback, @@ -1017,41 +1017,41 @@ declare global { /** Writes a value (which might not belong to this adapter) into the states DB. */ setForeignStateAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack?: boolean, ): Promise>; setForeignStateAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, options?: unknown, ): Promise>; setForeignStateAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, options: unknown, ): Promise>; /** Writes a value (which might not belong to this adapter) into the states DB only if it has changed. */ setForeignStateChanged( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, callback?: SetStateChangedCallback, ): void; setForeignStateChanged( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, callback?: SetStateChangedCallback, ): void; setForeignStateChanged( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, options: unknown, callback?: SetStateChangedCallback, ): void; setForeignStateChanged( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, options: unknown, callback?: SetStateChangedCallback, @@ -1059,17 +1059,17 @@ declare global { /** Writes a value (which might not belong to this adapter) into the states DB only if it has changed. */ setForeignStateChangedAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack?: boolean, ): Promise>; setForeignStateChangedAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, options?: unknown, ): Promise>; setForeignStateChangedAsync( id: string, - state: string | number | boolean | State | SettableState, + state: string | number | boolean | State | SettableState | null, ack: boolean, options: unknown, ): Promise>; diff --git a/types/iobroker/iobroker-tests.ts b/types/iobroker/iobroker-tests.ts index ce524567e9..6e3c943a68 100644 --- a/types/iobroker/iobroker-tests.ts +++ b/types/iobroker/iobroker-tests.ts @@ -400,3 +400,13 @@ const folderObj: ioBroker.FolderObject = { // Repro from https://github.com/ioBroker/ioBroker.js-controller/issues/782 // $ExpectError adapter.setState("id", {ack: false}); + +// null is a valid state value +adapter.setState("id", null); +adapter.setForeignState("id", null); +adapter.setStateAsync("id", null); +adapter.setForeignStateAsync("id", null); +adapter.setStateChanged("id", null); +adapter.setForeignStateChanged("id", null); +adapter.setStateChangedAsync("id", null); +adapter.setForeignStateChangedAsync("id", null);