[Modul] IOTLinkService

IOTLinkService
Dieses Modul verbindet den Dienst IOTLink (IOT Link / IOT Link Service · GitLab) mit IP-Symcon. Mit dem Modul ist es möglich Systeminformationen eines Windows Rechners über MQTT auszulesen und diesen fernzusteuern.

1. Voraussetzungen

[ul]
[li]mindestens IPS Version 5.0
[/li][li]IOTLink mit den Windows Monitor und Commands Addons (IOT Link / IOT Link Service · GitLab)
[/li][li]Im Windows Monitor Addon das Senden eines Screenshots abschalten, ansonsten stürzt IP-Symcon ab
[/li][/ul]
2. Enthaltene Module

[ul]
[li]Control
[/li][li]WindowsMonitor
[/li][/ul]
3. Installation
Über den Modul Store. (Zur Zeit noch Beta)

4. Konfiguration in IP-Symcon
Bitte den einzelnen Modulen entnehmen.

5. Spenden

Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:


Amazon Wunschzettel

Grüße,
Kai

1 „Gefällt mir“

Changelog
30.05.2023 - Version 1.0.1
Fix: Alten MQTT Client entfernt
Fix: UTF8 MQTT Fix
09.03.2020 - Version 1.0
Erste Stable Version

1 „Gefällt mir“

Hallo KaiS, vielen Dank für das Modul. Ich habe es soeben installiert (IPS 5.3 aktuellstes Release)

IP-Symcon 5.3, Raspberry Pi, 02/21/2020, 7dd2a700bd77

Auf meinem Windows 10 Rechner habe ich das Gegenstück (den Service) installiert.

Soweit so gut, die Daten kommen an aber binnen weniger Sekunden (ich kenne die Ursache noch nicht) Verliere ich die Verbindung zu IP Symcon (Webfront als auch Webconsole) im Symcon Log selbst ist nichts zu finden, wo kann ich nachsuchen? Der Fehler Tritt so circa 1-2 Minuten nachdem ich den Service auf dem Windows Rechner starte auf. In der Config des Service (auf Client Seite) habe ich lediglich den Hostname des IPS Servers und den Port des MQTT Servers (angelegt in Symcon) angegeben.

Schau mal oben unter Voraussetzungen:

Im Windows Monitor Addon das Senden eines Screenshots abschalten, ansonsten stürzt IP-Symcon ab

Da wird per MQTT zu viel gesendet, damit kann der MQTT Server anscheinend nicht umgehen und dann stürzt die IP-Symcon ab.

Grüße,
Kai

Stimmt, jetzt stürzt es nicht mehr ab. Hast du bereits bezüglich der Aktualisierungsintervalle Erfahrungen gesammelt? Ich musste den Dienst (auf der Windows Kiste) erstmal wieder stoppen da mein Symcon scheinbar nicht ganz so einverstanden war, dass alle 10 Sekunden so viele Nachrichten via MQTT eintrudeln (genug Power hat der Rock Pi 4 4GB&32gb eMMC auf jeden fall).

Gibt es sonst noch einstellungen die man „tweaken“ sollte Dienstseitig?

Was passiert denn bei dir?
Meine Config sieht so aus:

############################################################################
# Enabled
############################################################################
# This flag indicates whether the module is enabled or disabled.
############################################################################
# Type: Boolean
# Default: false
############################################################################
enabled: true

############################################################################
# Default Formats
############################################################################
# Define which formatting will be used by default in all monitors
############################################################################
# Sizes: B (Bytes), KB (Kilobytes), GB (Gigabytes), TB (Terabytes)
#  - You can define rounding with "XX:Y" where Y is the number of decimals.
#  - Example: "GB:2" will display 2 decimal places
#
# Time/Date:
# - See this link:
# - https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
#
# Important:
# - You can override default format for each monitor by placing formats
# - under their configuration. Example:
#   Memory:
#    enabled: true
#    interval: 10
#    cacheable: true
#    formats:
#      memoryFormat: GB:2
############################################################################
formats:
  diskFormat: MB
  memoryFormat: MB
  dateFormat: yyyy-MM-dd
  timeFormat: HH:mm:ss
  dateTimeFormat: yyyy-MM-dd HH:mm:ss

############################################################################
# Monitors
############################################################################
# Configure which monitors are enabled and which interval they should
# be pooled from the system. I don't recommend less than 5 seconds.
# Cacheable monitors don't send the value repeatedly unless it changes.
############################################################################
# CPU               : CPU Usage
# Memory            : Memory (Usage, Available, Used, Total).
# HardDrive         : Hard Drives (Total Size, Free Space, Format, etc).
# Power             : Power (Status, Battery Status, Remaning Time, etc).
# NetworkInfo       : Network Information (IPv4, IPv6, Speed, Wired).
# MediaInfo         : Media Information (Volume, Muted).
# SystemInfo        : System Info (Current user physically logged in).
# IdleTime          : Idle Time (Current user physically logged in).
# Uptime            : Uptime information (Boot time, Uptime).
# Display-Info      : Screen Width and Height (Per Display).
# Display-Screenshot: Screenshot (Per Display) - Recommended > 60 secs.
############################################################################
monitors:
  CPU:
    enabled: true
    interval: 20
    cacheable: true
  Memory:
    enabled: true
    interval: 20
    cacheable: true
  HardDrive:
    enabled: true
    interval: 20
    cacheable: true
  Power:
    enabled: true
    interval: 20
    cacheable: true
  NetworkInfo:
    enabled: true
    interval: 20
    cacheable: true
  MediaInfo:
    enabled: true
    interval: 20
    cacheable: true
  SystemInfo:
    enabled: true
    interval: 20
    cacheable: true
  IdleTime:
    enabled: true
    interval: 20
    cacheable: true
    inSeconds: true
  Uptime:
    enabled: true
    interval: 60
    cacheable: true
  Display-Info:
    enabled: true
    interval: 60
    cacheable: true
  Display-Screenshot:
    enabled: false
    interval: 60
    cacheable: false

Grüße,
Kai

Hallo Kai, mittlerweile läuft alles super! Ich hab auch paar unbenötigte Infos rausgenommen aus der Config und übertrage alle Infos alle 20 Sekunden. Ich glaube ich hatte den zweiten Crash selbst ausgelöst dadurch dass ich das Modul mit wirren Schaltvorgängen verrückt gemacht hatte (via dem Webfront). Hast du eine Idee, ob man den Status (ob die Monitore an sind) irgendwie auslesen kann? Ich hab mir nun ein Script geschrieben, dass ich die Monitore via VoiceControl (also Homekit) Schalten kann. Falls es keine Möglichkeit gibt, hältst du es dann für sinnvoll oder nützlich die Leerlaufzeit, welche bei einer Tastatur oder Mauseingabe zurückgesetzt wird zu nutzen ? (Bei einer Maus oder Tastatureingabe werden nach dem Monitor abschalten auch die Monitore wieder aktiv).

Einen großen dank für das Modul! Es wird immer Umfangreicher, was man alles nützliches in IPS einbinden kann.

Das wollte ich auch gerne haben, aber da gibt es anscheinend nichts. Evtl. kann man ja mal bei den Entwickler nachfragen.

Ansonsten kannst du ja grob anhand der „Idle Time“ abschätzen, wann der Monitor aus ist.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Das Modul wurde heute von IP-Symcon im Store freigegeben.

Grüße,
Kai

Mir fällt gerade auf, dass ich ab und an wohl den Service auf Windows Seite neustarten muss. Ich bekomme im MQTT Log im Symcon folgendes angezeigt. Ich kann dazu jedoch nirgends etwas finden…

Habt ihr eine Idee? z.B. wenn ich den Monitor an und ausschalten möchte:

2020-04-02 15_06_22-Window.png

Hallo,

wie lautet der Befehl (Syntax), um z.B. den Monitor via Script AUS zu schalten ???

Ausserdem sind mir noch ein paar Dinge beim „Windows Monitor“ aufgefallen:

    1. Variable: nicht in deutsch
    1. Variable: wie bei „Betriebszeit“ auch „Leerlauf Zeit“ zusammen schreiben, im Profil fehlt das Suffix (Sekunden)
    1. Variable: Name z.B. „Zeitpunkt letzter Boot“
    1. Variable: nicht in deutsch
    1. Variable: nicht in deutsch
    1. Variable: nicht in deutsch, im Profil ist das Suffix „MB“ es werden aber „GB“ befüllt
    1. Variable: nicht in deutsch, im Profil ist das Suffix „MB“ es werden aber „GB“ übertragen, Variable wird nie befüllt
    1. Variable: Schreibfehler „freie Speicher“ (r fehlt), im Profil ist das Suffix „MB“ es werden aber „GB“ befüllt
    1. Variable: im Profil ist das Suffix „MB“ es werden aber „GB“ befüllt
    1. Variable: wie bei „Festplattenformat“ auch „Festplatten Bezeichnung“ zusammen schreiben

Gruß Proxima

Da musst du eine die RequestAction Funktion nutzen.

Schaue ich mir an, sieht nach eine Tippfehler aus.

Schaue ich mir an.

Kann man sehen wie man will, kannst du ja auch selbst umbennen.

Schaue ich mir an.

Schaue ich mir an.

Schaue ich mir an.

Schaue ich mir an.

Schaue ich mir an.

Schaue ich mir an.

Schaue ich mir an.

Grüße,
Kai

Hallo Kai,
ich wollte gestern das Modul installieren, aber mein Windows 10- Desktop Norton hat die Installation des IOT Link / IOT Link Service · GitLab konsequent abgelehnt.

Es war auch nicht möglich die Datei zu zulassen.

Da kann ich leider nicht helfen.
Ich denke, das passiert, weil mit dem Dienst das System ferngesteuert werden kann.

Grüße,
Kai

Hallo Kai,

coole Idee. Funktioniert soweit. Allerdings werden bei mit nicht alle Variablen befüllt. Gut wäre auch man die benötigten Variablen im Modul an-/abwählen könnte.

Wie würde das für Monitor ausschalten aussehen?

Hi Kai,

hab das mal ein bisschen angepasst. Können wir das in dein Modul übernehmen oder wenigsten Teile daraus?

Bildschirmfoto 2020-07-08 um 16.49.55.png


/*
+++ Currently not implemented, because the values are considered unimportant ++++
console-connect
console-disconnect
 remote-connect
remote-disconnect
session-lock
session-unlock
stats/battery/full-lifetime
stats/display/0/screen ---> Possibly interesting, but no background knowledge how to handle the screenshot correctly            stats/display/0/screen-height
stats/display/0/screen-width
stats/hard-drive/c/available-free-space --> No difference to "available-free space" found. Same value
stats/hard-drive/d/available-free-space --> No difference to "available-free space" found. Same value            stats/network/0/bytes-received
stats/network/0/bytes-received-per-second
stats/network/0/bytes-send
stats/network/0/bytes-send-per-second
*/

Klar, schaue ich mir an.

Grüße,
Kai

Ich glaube ich stehe gerade auf dem vielbesagten Schlauch.

IOTLink hab ich auf dem entfernten win10 Rechner installiert und „Start Windows Service“ ausgeführt. Vorher noch den Screenshot in der config Datei deaktiviert.

Auf Symson (Raspi Version >5.1) habe ich den modul aus dem Modulstore installiert und 2 Instanzen (Control und Monitor) angelegt. In den Instanzen hab ich die Windows Arbeitsgruppe und den Windows-Rechnernamen ergänzt. Eine Verbindung kommt nicht zu stande. Hab bestimmt was vergessen?!

Hast du in der Config den MQTT Server angegeben?
Zeig mal deine Config.

Grüße,
Kai

hallo Kai,

Mist, Benachrichtigung für Antwort war deaktiviert und ich bin 2 Wochen zu spät… die config meiner „configuration.yaml“ unter IOTLink->Configs auf meinem Zielrechner:

########################################################################
# IOT Link - Engine Configuration File
########################################################################
# See https://gitlab.com/iotlink/iotlink/wikis/Configuration for details
########################################################################
mqtt:
  ########################################################################
  # Credentials Settings
  ########################################################################
  credentials:
    username: Benutzername vom mqtt server in IPS
    password: Passwort vom mqtt Server in IPS
  ########################################################################
  # TCP Connection Settings
  ########################################################################
  tcp:
    enabled: true
    hostname: IP adresse IPS
    port: 1024
    secure: false
  ########################################################################
  # WebSocket Connection Settings
  ########################################################################
  websocket:
    enabled: false
    uri: 
    secure: false
  ########################################################################
  # Message Settings
  ########################################################################
  messages:
    qos: 1
    retain: false
  ########################################################################
  # LWT Message Settings
  ########################################################################
  lwt:
    enabled: true
    qos: 1
    retain: true
    connectMsg: "ON"
    disconnectMsg: "OFF"
  ########################################################################
  # Discovery Settings
  ########################################################################
  discovery:
    enabled: true
    topicPrefix: homeassistant
    domainPrefix: false
  ########################################################################
  # General MQTT Settings
  ########################################################################
  clientId: Display
  prefix: IOTLink
  globalPrefix: IOTLink/all
  cleanSession: true
  autoReconnectDelay: 10
  keepAlivePeriod: 60
  KeepAliveSendInterval: 5

########################################################################
# Logging Configuration
########################################################################
logging:
  enabled: true
  ########################################################################
  # Level
  ########################################################################
  # Define the level of logging information that will be stored on logs.
  ########################################################################
  # 0 (Disabled)
  # 1 (Critical), 2 (Error), 3 (Warning)
  # 4 (Info), 5 (Verbose), 6 (Debug)
  # 7 (Debug Within Loops), 8 (Trace)
  # 9 (Trace Within Loops), 10 (Data Dumping)
  ########################################################################
  # Type: Integer
  # Default: 4 (Info)
  ########################################################################
  level: 4

########################################################################
# General Addon Configuration
########################################################################
addons:
  enabled: true

hostname, Benutzername und Passwort hab ich natürlich angepasst. :cool:
Server horcht auf Port 1024 in IPS, ist aktiv und Schnittstelle geöffnet.