Registrieren Sie sich jetzt!
(08.05.2018, 16:03)Hammalui schrieb: Hallo Alkahna, diese Regelung habe ich bei mir schon umgesetzt. Du musst im Startfenster unter Einstellungen (Zahnrad) gehen. Dann auf Register Wetterstation. Im Register Temperatur gibt es das Feld "Aussentemperatur von". Dort "von Lüftungsanlage" auswählen. Dann wird allerdings auch im Startfenster die Außentemperatur von der Lüftungsanlage genommen. Wie schon beschrieben kannst du dann die Außentemperatur in die Logik einbringen.
(08.05.2018, 16:03)Hammalui schrieb: Bei mir ist allerdings das Problem, dass die Aktion ausgeführt wird, die Lüftung (von Pluggit) ausgeht, aber nach einer dreiviertel Stunde wieder an geht. Dann aber auf Stufe 3. Kannst dass ja mal bei dir probieren. Wenn es besser klappt, gerne mir mal Bescheid geben, damit ich mein Problem im Griff bekomme.
(09.05.2018, 09:33)Bluescreen schrieb: Wäre einen Versuch wert, allerdings sollte man die Lüftungsanlage ja nicht unbedingt komplett abschalten...
# Script: Pluggit Werte auslesen # Code als .ps1 Datei speichern # Ausführen via: PS C:\Users\Admin\Desktop> & '.\Pluggit-Script.ps1' # WICHTIG: Es kann sein das dieser Befehl nötig ist, um das Script zu starten !!!! # Vor Ausführung: Set-ExecutionPolicy Unrestricted # WICHTIG: Änderung nach Ausführung wieder Rückgängig machen, zwecks Sicherheit !!!! # Nach Ausführung: Set-ExecutionPolicy restricted # Zur Einfacheren Bedienung kann folgender Befehl verwendet werden: # powershell.exe -executionpolicy Unrestricted # Dies ruft eine neue Powershell-Session auf, in welcher die ExecutionPolicy angepasst wurde. # Vorteil, diese Ausnahme gilt nur für diese laufende Session und nicht für alle laufende Sessions und # muss daher beim Beenden der Session nicht wieder zurück gesetzt werden. param( # IP DER PLUGGIT HIER EINTRAGEN [string] $remoteHost = "192.168.X.X", [int]$port = 502 ) # set-psdebug -strict # enforce strict variable checking function modbusread ([string]$remoteHost, [int]$port, [int]$startaddress,[int]$bytecount,[string]$targetformat,[string]$flipoption) { #write-host "prtg-pluggit: Prepare request" [byte[]]$sendbuffer=00,110 # Transaction Identifier $sendbuffer+=00,00 #Protocol identifier $sendbuffer+=00,06 #Length $sendbuffer+=00 #Unit ID $sendbuffer+=03 #Function Read Holding Registers $sendbuffer+=[byte]([math]::Truncate(($startaddress -40001)/256)),([system.byte](($startaddress -40001)%256)) #Data of first register 40133-40001 = 132 $sendbuffer+=00,($bytecount) #write-host "prtg-pluggit: Send request" $tcpclient = new-object System.Net.Sockets.TcpClient($remoteHost, $port) $netStream = $tcpclient.GetStream() $netStream.write($sendbuffer,0,$sendbuffer.length) start-sleep -milliseconds 50 #write-host "prtg-pluggit: prepare Read of @($startaddress -40001) bytes" [byte[]]$recbuffer = new-object System.Byte[] ([int]($bytecount+9)) # +8 für ModbusTCP Header #write-host "prtg-pluggit: Reading socket" $receivedbytes = $netStream.Read($recbuffer, 0, [int]($bytecount+9)); #write-host "prtg-pluggit: Received Byes: $receivedbytes " $tcpclient.Close() $netStream.Close() $resultdata = $recbuffer[9..($recbuffer[8]+8)] if (($flipoption.tolower() -eq "reverse") -or ($flipoption.tolower() -eq "both")) { [array]::reverse($resultdata) } if (($resultdata.length%2 -eq 0) ` -and (($flipoption.tolower() -eq "flip") ` -or ($flipoption.tolower() -eq "both"))) { $resultdataflip = $resultdata.clone() # flip bytes für some actions for ($count=0; $count -lt $resultdata.length ;$count+=2) { $resultdataflip[$count] = $resultdata[$count+1] $resultdataflip[$count+1] = $resultdata[$count] } $resultdata = $resultdataflip } #write-host " Convertto" $targetformat.tolower() switch ($targetformat.tolower()) { "uint16" {[bitconverter]::ToUInt16($resultdata,0)} "int16" {[bitconverter]::ToInt16($resultdata,0)} "uint32" {[bitconverter]::ToUInt32($resultdata,0)} "int32" {[bitconverter]::ToInt32($resultdata,0)} "uint64" {[bitconverter]::ToUInt64($resultdata,0)} "int64" {[bitconverter]::ToInt64($resultdata,0)} "float" {[Math]::Round(([BitConverter]::ToSingle(($resultdata[1],$resultdata[0],$resultdata[3],$resultdata[2]),0)),1)} "float2" {[Math]::Round(([BitConverter]::ToSingle($resultdataflip,0)),1)} "time" {(get-date "1970-01-01 00:00:00").addseconds([bitconverter]::ToUInt32($resultdata,0))} "string" {[System.Text.Encoding]::ASCII.GetString($resultdata)} default {$resultdata} } } write-host "Pluggit Werte: Start Script" write-host "#################################" write-host "Aussenluft: " (modbusread $remoteHost $port 40133 4 float) "°C" write-host "Zuluft Raum: " (modbusread $remoteHost $port 40135 4 float) "°C" write-host "Abluft Raum: " (modbusread $remoteHost $port 40137 4 float) "°C" write-host "Fortluft nach aussen: " (modbusread $remoteHost $port 40139 4 float) "°C" write-host "Lüfterstufe: " (modbusread $remoteHost $port 40325 4 uint32 flip) write-host "Fan1 RPM: " (modbusread $remoteHost $port 40101 4 float) write-host "Fan2 RPM: " (modbusread $remoteHost $port 40103 4 float) write-host "Modus: " (modbusread $remoteHost $port 40473 4 uint32 flip) write-host "Filter-Tage übrig: " (modbusread $remoteHost $port 40555 4 uint32 flip) "Tage" write-host "Letzter Alarm: " (modbusread $remoteHost $port 40517 4 uint32 flip) write-host "#################################"
(08.05.2018, 16:03)Hammalui schrieb: Die Regelung der Lüftungsanlage selbst kannst du nur über Aktionen und Merker verwirklichen.