Hallo,
wie kann ich im ioBroker den Status des ESX Servers bzw. der anderen WMs auslesen.
Welche Möglichkeiten gibt es?
Viele Grüße Sebastian
Hallo,
wie kann ich im ioBroker den Status des ESX Servers bzw. der anderen WMs auslesen.
Welche Möglichkeiten gibt es?
Viele Grüße Sebastian
Ja das würde funktionieren, gib dem Container nur genug CPU und Arbeitsspeicher.
Hallo zusammen,
auf dem iPad Air (2014) läuft meine VIS recht gut und schnell. Wenn ich jedoch mit iFrame was über Grafana einbinde lädt die Seite mehrere Sekunden. Auf dem PC gibt es keine merklichen Ladezeiten bei der gleichen VIS. Gibt es eine Möglichkeit das ganze auf dem iPad zu beschleunigen?
Vielleicht hat jemand bereits ähnliche Erfahrungen gemacht.
Beste Grüße.
Hallo,
nach jedem Update des Shelly Adapters, wird der Adapter als offline (verbunden mit Host / Lebenszeichen) angezeigt. Erst nach dem npm Install geht es wieder.
Warum ist das so und kann man das ändern?
@apollon77 said in Shelly Adapter: Errors im Log:
Hm … geh mal in das iobroker Verzeichnis und führe aus
cd node_modules/iobroker.shelly npm install xml2js@0.4.19
geht es danach?
@Steff75
Prima so funktioniert es jetzt. Trotzdem verstehe ich die Timeout Funktion noch nicht ganz.
Besten Dank.
Hallo,
ich möchte über eine Bewegung das Radio einschalten. Das klappt soweit gut, jedoch schaltet Echo bei einer erneuten Bewegung das Radio erneut ein und es kommt zu einer Unterbrechung des Radiosenders.
Hier einmal das Blockly vielleicht kann mir jemand bei meinem Denkfehler helfen.
Besten Dank vorab.
Sebastian
Hallo Dirni,
ist zwar etwas älter das ganze aber ich habe nach einer ähnlichen Lösung gesucht.
Das Blocky erkennt ob Alexa bereits läuft und stoppt somit das Timeout.
Vielleicht hilft es ja noch.
BlocklyJavascriptTypeScript
Skript läuft nicht
Protokoll
Ausgewählte Blöcke exportieren
<xml xmlns="http://www.w3.org/1999/xhtml">
<variables>
<variable type="undefined" id="timeout">timeout</variable>
</variables>
<block type="on" id="78GjmCDP=3RcYE4wg6[W" x="313" y="163">
<field name="OID">zigbee.0.00158d0004470b7f.occupancy</field>
<field name="CONDITION">true</field>
<field name="ACK_CONDITION"></field>
<statement name="STATEMENT">
<block type="timeouts_settimeout" id="iQr@YI*16Gj_OpB;@n^L">
<field name="NAME">timeout</field>
<field name="DELAY">2</field>
<field name="UNIT">ms</field>
<statement name="STATEMENT">
<block type="controls_if" id=":qkXo1Q$.oXaKg0#A^Wr">
<value name="IF0">
<block type="logic_operation" id="N*vA|Amk@gd+zZ%9EVV_">
<field name="OP">AND</field>
<value name="A">
<block type="time_compare" id="2xy9WWDx.!4#7@CjqkPV">
<mutation end_time="false"></mutation>
<field name="OPTION">></field>
<field name="START_TIME">05:00</field>
</block>
</value>
<value name="B">
<block type="time_compare" id=".*n@#:NRrlQE9zri$xQ~">
<mutation end_time="false"></mutation>
<field name="OPTION"><</field>
<field name="START_TIME">07:30</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="DB^9Wb|#2BadiGRgJtOG">
<mutation delay_input="false"></mutation>
<field name="OID">alexa2.0.Echo-Devices.b0b7bba184694ed59cfcb0830632a9b7.Player.TuneIn-Station</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="text" id="D(~VB9g*q`a%3fe(KQ=b">
<field name="TEXT">1Live</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
<next>
<block type="controls_if" id="=~_^a*rgfsyar4nzM)k:">
<value name="IF0">
<block type="logic_compare" id="NNxN=h.y5f`^L,qx!l_U">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="ZkJW6I%?MpkXfaK)WbzY">
<field name="ATTR">val</field>
<field name="OID">alexa2.0.Echo-Devices.b0b7bba184694ed59cfcb0830632a9b7.Player.currentState</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="_q!{3$dm~0R^g`$?Q8sk">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="timeouts_cleartimeout" id="^UZga${3XFZ3@O(yN$ey">
<field name="NAME">timeout</field>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
</xml>
<xml xmlns="http://www.w3.org/1999/xhtml">
<variables>
<variable type="undefined" id="timeout">timeout</variable>
</variables>
<block type="on" id="78GjmCDP=3RcYE4wg6[W" x="313" y="163">
<field name="OID">zigbee.0.00158d0004470b7f.occupancy</field>
<field name="CONDITION">true</field>
<field name="ACK_CONDITION"></field>
<statement name="STATEMENT">
<block type="timeouts_settimeout" id="iQr@YI*16Gj_OpB;@n^L">
<field name="NAME">timeout</field>
<field name="DELAY">2</field>
<field name="UNIT">ms</field>
<statement name="STATEMENT">
<block type="controls_if" id=":qkXo1Q$.oXaKg0#A^Wr">
<value name="IF0">
<block type="logic_operation" id="N*vA|Amk@gd+zZ%9EVV_">
<field name="OP">AND</field>
<value name="A">
<block type="time_compare" id="2xy9WWDx.!4#7@CjqkPV">
<mutation end_time="false"></mutation>
<field name="OPTION">></field>
<field name="START_TIME">05:00</field>
</block>
</value>
<value name="B">
<block type="time_compare" id=".*n@#:NRrlQE9zri$xQ~">
<mutation end_time="false"></mutation>
<field name="OPTION"><</field>
<field name="START_TIME">07:30</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="DB^9Wb|#2BadiGRgJtOG">
<mutation delay_input="false"></mutation>
<field name="OID">alexa2.0.Echo-Devices.b0b7bba184694ed59cfcb0830632a9b7.Player.TuneIn-Station</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="text" id="D(~VB9g*q`a%3fe(KQ=b">
<field name="TEXT">1Live</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
<next>
<block type="controls_if" id="=~_^a*rgfsyar4nzM)k:">
<value name="IF0">
<block type="logic_compare" id="NNxN=h.y5f`^L,qx!l_U">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="ZkJW6I%?MpkXfaK)WbzY">
<field name="ATTR">val</field>
<field name="OID">alexa2.0.Echo-Devices.b0b7bba184694ed59cfcb0830632a9b7.Player.currentState</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="_q!{3$dm~0R^g`$?Q8sk">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="timeouts_cleartimeout" id="^UZga${3XFZ3@O(yN$ey">
<field name="NAME">timeout</field>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
</xml>
Systemdata | Bitte Ausfüllen |
---|---|
Hardwaresystem: | WMWare ESX 6.0 |
Arbeitsspeicher: | 4GB |
Festplattenart: | SSD |
Betriebssystem: | Debian |
Node-Version: | 10.19.0 |
Nodejs-Version: | 10.19.0 |
NPM-Version: | 6.13.4 |
Installationsart: | Manuell |
Image genutzt: | Nein |
Ort/Name der Imagedatei: | Link |
Hallo,
beim installieren sowie aktualisieren bekomme ich folgenden Fehler.
Liegt das an dem nicht verfügbaren Bluetooth auf der Debian Maschine und kann ich das ingnorieren?
$ ./iobroker upgrade swiss-weather-api
Update swiss-weather-api from @0.1.6 to @0.2.0
NPM version: 6.13.4
npm install iobroker.swiss-weather-api@0.2.0 --loglevel error --prefix "/opt/iobroker" (System call)
In file included from ../src/DeviceINQ.h:17, from ../src/linux/BluetoothSerialPort.cc:13:../node_modules/nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../node_modules/nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^
In file included from ../src/linux/BluetoothSerialPort.cc:12:../src/linux/BluetoothSerialPort.cc: At global scope:/home/iobroker/.cache/node-gyp/10.19.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Handle<v8::Object>)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^/home/iobroker/.cache/node-gyp/10.19.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/linux/BluetoothSerialPort.cc:23:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(BluetoothSerialPort, InitAll) ^~~~~~~~~~~
In file included from /home/iobroker/.cache/node-gyp/10.19.0/include/node/node.h:63, from ../src/linux/BluetoothSerialPort.cc:12:/home/iobroker/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:/home/iobroker/.cache/node-gyp/10.19.0/include/node/node_object_wrap.h:84:78: required from here/home/iobroker/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type] reinterpret_cast<Callback>(callback), type); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/iobroker/.cache/node-gyp/10.19.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:../node_modules/nan/nan_object_wrap.h:65:61: required from here/home/iobroker/.cache/node-gyp/10.19.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
../src/linux/DeviceINQ.cc:35:14: fatal error: bluetooth/bluetooth.h: Datei oder Verzeichnis nicht gefunden #include <bluetooth/bluetooth.h> ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [BluetoothSerialPort.target.mk:109: Release/obj.target/BluetoothSerialPort/src/linux/DeviceINQ.o] Fehler 1
gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:191:23)gyp ERR! stack at ChildProcess.emit (events.js:198:13)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)gyp ERR! System Linux 4.19.0-8-amd64gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "build"gyp ERR! cwd /opt/iobroker/node_modules/node-bluetoothgyp ERR! node -v v10.19.0gyp ERR! node-gyp -v v5.0.5gyp ERR! not ok
node-pre-gyp
@Kuddel said in ESXi Host in ioBroker überwachen.:
Für die VMs habe ich kein PS Sktipt, da sich der iobroker die Infos direkt per SSH holt
Und das machst du wie?
Eventuell hast du das bereits schon beschrieben. Ein Link würde mir schon reichen.
@Kuddel bei deinem Script ist mir aufgefallen, dass bei der Dauerschleife eine sehr hohe CPU Last entsteht.
#Dieses Skript übergibt Informationen vom ESX-NUC an den ioBroker
#Das Skript läuft im Hintergrund und wird bei der Anmeldung gestartet
#sleep 30
#Import der PowerCLI Befehle
Import-Module VMware.PowerCLI
#Verbindung zum ESX-Host aufbauem
Connect-VIServer 10.9.77.5 -user administrator@vsphere.local -Password !
#Dauerschleife
while ($env:COMPUTERNAME -eq "mgmt") {
#ESXi Infos Abfragen
$esxi_infos = get-vmhost
#Freier RAM ESXi
$esxi_ram = $esxi_infos.MemoryUsageGB
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_mem_usage?value=$esxi_ram | Out-Null
$esxi_ram_usage_percent = $esxi_infos.MemoryUsageGB / $esxi_infos.MemoryTotalGB
$esxi_ram_usage_percent = $esxi_ram_usage_percent * 100
$esxi_ram_usage_percent = [math]::Round($esxi_ram_usage_percent,0)
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_mem_usage_percent?value=$esxi_ram_usage_percent | Out-Null
#CPU Auslastung
$esxi_cpu_usage = [INT]$esxi_infos.CpuUsageMhz
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_cpu_usage?value=$esxi_cpu_usage | Out-Null
$esxi_cpu_usage_percent = $esxi_infos.CpuUsageMhz / $esxi_infos.CpuTotalMhz
$esxi_cpu_usage_percent = $esxi_cpu_usage_percent * 100
$esxi_cpu_usage_percent = [math]::Round($esxi_cpu_usage_percent,0)
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_cpu_usage_percent?value=$esxi_cpu_usage_percent | Out-Null
#Speicherauslastung SSD
$DataSSD480GB = Get-Datastore DataSSD480GB
$DataSSD480GB_usage_percent = $DataSSD480GB.CapacityGB - $DataSSD480GB.FreeSpaceGB
$DataSSD480GB_usage_percent = $DataSSD480GB_usage_percent / $DataSSD480GB.CapacityGB
$DataSSD480GB_usage_percent = $DataSSD480GB_usage_percent * 100
$DataSSD480GB_usage_percent = [math]::Round($DataSSD480GB_usage_percent,2)
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_DataSSD480GB_usage_percent?value=$DataSSD480GB_usage_percent | Out-Null
#Freier Speicher in GB
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_DataSSD480GB_freespace?value=$($DataSSD480GB.FreeSpaceGB) | Out-Null
}
Wenn du unter der Schleife noch ein "sleep 1" machst reduziert sich das ganze extrem.
#sleep 30
#Import der PowerCLI Befehle
Import-Module VMware.PowerCLI
#Verbindung zum ESX-Host aufbauem
Connect-VIServer 10.9.77.5 -user administrator@vsphere.local -Password !
#Dauerschleife
while ($env:COMPUTERNAME -eq "mgmt") {
#ESXi Infos Abfragen
$esxi_infos = get-vmhost
#Freier RAM ESXi
$esxi_ram = $esxi_infos.MemoryUsageGB
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_mem_usage?value=$esxi_ram | Out-Null
$esxi_ram_usage_percent = $esxi_infos.MemoryUsageGB / $esxi_infos.MemoryTotalGB
$esxi_ram_usage_percent = $esxi_ram_usage_percent * 100
$esxi_ram_usage_percent = [math]::Round($esxi_ram_usage_percent,0)
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_mem_usage_percent?value=$esxi_ram_usage_percent | Out-Null
#CPU Auslastung
$esxi_cpu_usage = [INT]$esxi_infos.CpuUsageMhz
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_cpu_usage?value=$esxi_cpu_usage | Out-Null
$esxi_cpu_usage_percent = $esxi_infos.CpuUsageMhz / $esxi_infos.CpuTotalMhz
$esxi_cpu_usage_percent = $esxi_cpu_usage_percent * 100
$esxi_cpu_usage_percent = [math]::Round($esxi_cpu_usage_percent,0)
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_cpu_usage_percent?value=$esxi_cpu_usage_percent | Out-Null
#Speicherauslastung SSD
$DataSSD480GB = Get-Datastore DataSSD480GB
$DataSSD480GB_usage_percent = $DataSSD480GB.CapacityGB - $DataSSD480GB.FreeSpaceGB
$DataSSD480GB_usage_percent = $DataSSD480GB_usage_percent / $DataSSD480GB.CapacityGB
$DataSSD480GB_usage_percent = $DataSSD480GB_usage_percent * 100
$DataSSD480GB_usage_percent = [math]::Round($DataSSD480GB_usage_percent,2)
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_DataSSD480GB_usage_percent?value=$DataSSD480GB_usage_percent | Out-Null
#Freier Speicher in GB
Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_DataSSD480GB_freespace?value=$($DataSSD480GB.FreeSpaceGB) | Out-Null
sleep 1
}
Du hast nicht zufällig noch ein Script für die VMs selbst?
@MartinG an welcher Stelle bekommst du die Fehlermeldung?