Zugriff auf SD-Karte

Generelle Fragen zur Montage | Bedienung | Konfiguration des Controllers.
richard-os
Beiträge: 21
Registriert: 6. Januar 2015, 17:06

Zugriff auf SD-Karte

Beitrag von richard-os »

Hallo,
ich möchte per Netzwerkzugriff von meinem macbook auf die SD-Karte des Controllers zugreifen.
Primär ginge es mir nur um den Download von Sensordaten aus dem history-verzeichnis.
Geht es auch einfach per Konsole?
Grüße richard
 

Alle Reaktionen


Benutzeravatar
Alex
Administrator
Beiträge: 10103
Registriert: 28. Mai 2014, 23:00

Re: Zugriff auf SD-Karte

Beitrag von Alex »

Der Controller hat keine Konsole... oder meinst Konsole am Mac? (da kann ich Dir nicht wirklich helfen)
FTP sollte aber wohl sicher auch gehen (Filezilla gibts ja auch für den Mac).
 

Alle Reaktionen


richard-os
Beiträge: 21
Registriert: 6. Januar 2015, 17:06

Re: Zugriff auf SD-Karte

Beitrag von richard-os »

Der Controller hat keine Konsole.
Hallo, das gleiche müsste aber für ftp gelten.
Ohne ftp-server auf dem Controller kann der auch keine ftp-client-Anfagen bedienen!
Da html geht, läuft dort eben auch ein html-server (aka Webserver).
Aber ich habe nun bemerkt, dass man das gewünschte Datenintervall in der grafischen Darstellung einstellen kann.Die zugehörigen Daten lassen sich dann in einer csv-Datei exportieren.
Welches Betriebssystem läuft auf dem Controller?
Grüße Richard
 

Alle Reaktionen


Benutzeravatar
Alex
Administrator
Beiträge: 10103
Registriert: 28. Mai 2014, 23:00

Re: Zugriff auf SD-Karte

Beitrag von Alex »

Ja, ich weiß schon was wir alles an Servern eingebaut haben.
... und eine Konsole (SSH oder Telnet oder irgendwas ähnliches) ist halt numal nicht da...
 

Alle Reaktionen


Benutzeravatar
Viveronese
Beiträge: 69
Registriert: 18. Mai 2018, 16:16

Re: Zugriff auf SD-Karte

Beitrag von Viveronese »

richard-os hat geschrieben:Hallo,
ich möchte per Netzwerkzugriff von meinem macbook auf die SD-Karte des Controllers zugreifen.
Primär ginge es mir nur um den Download von Sensordaten aus dem history-verzeichnis.
Geht es auch einfach per Konsole?
Von einer Console kannst Du sinnvoll nur mit FTP auf den Poolcontroller zugreifen. Das kann man mit tools wie wget (lesen) oder lftp (lesen+schreiben) machen.
Hier zB mein tägliches Backup Script (Debian Linux):

Code: Alles auswählen

#!/bin/bash
date=$(date '+%Y%m%d-%H%M')
cd /data/pooldigital/backupftp
wget -mq --timeout=3 ftp://username:password@192.168.61.35/usr/*
wget -mq --timeout=3 ftp://username:password@192.168.61.35/history/*
wget -mq --timeout=3 ftp://username:password@192.168.61.35/dosage/dosquant.ini
tar --exclude '.listing' -czf pooldigital-$date.tar.gz 192.168.61.35
Beim Mac kann das Script ein bissel anders aussehen, da MacOS als Shell glaube ich zsh statt bash benutzt.
Und Du musst natürlich wget installieren (https://brewinstall.org/install-wget-on-mac-with-brew/).

Wenn Du auch auf die SD Card schreiben willst, geht das wie gesagt mit lftp (https://brewinstall.org/install-lftp-on-mac-with-brew/).
Ein lftp command in einem script hat diese Syntax:

Code: Alles auswählen

lftp -e "FTP-COMMAND; FTP-COMMAND; FTP-COMMAND" -u username,password 192.168.61.35 
 

Alle Reaktionen


Benutzeravatar
Viveronese
Beiträge: 69
Registriert: 18. Mai 2018, 16:16

Re: Zugriff auf SD-Karte

Beitrag von Viveronese »

Man kann natürlich auch mit http und Python basteln. Hier ein simples Python Script, das die Daten der GetState.csv ausliest:

Code: Alles auswählen

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
Dieses Script liest sich alle 5 Sekunden den aktuellen Status (GetState.csv)
vom PoolDigital Controller und packt diese in ein Python Dictionary

Inhalt der GetState.cxsv
1..5 ADC
6 Redox
7 pH
8..15 Temperature [1..8]
16..23 Relay [1..8]
28..35 External Relay [1..8]
24..27 Digital Input [1..8]
36,39 Cl Rest,Consumption
37,40 pH- Rest,Consumption
38,41 pH+ Rest,Consumption
"""

import requests
import csv
import time
from math import ceil, log10

# IP address or host name of pooldigital controller
controller_host  = '192.168.61.35'  

# In some topics we might not be interested
ignore_names     = ('Time', 'n.a.', '','pH+ Rest', 'pH+ consumption','pH- empty alarm','Cl empty alarm')


def GetPoolData(host):
    with requests.Session() as s:
        url=f'http://{host}/GetState.csv'
        download = s.get(url)
        decoded_content = download.content.decode('utf-8')
    cr = csv.reader(decoded_content.splitlines(), delimiter=',')
    csvdata = list(cr)
    # print(csvdata)
    poolstatus = {}
    for (name, unit, base, delta, n) in zip(*csvdata[1:]):
        if name in ignore_names:
            continue
        base = float(base)
        delta = float(delta)
        n = int(n)
        if unit == '--':  # switches
            unit = 'manual' if n & 2 else 'auto'
            value = n & 1
        else:
            value = base + n * delta
            # format to just the required digits
            digits = max(0, ceil(-log10(abs(delta))))
            value = f'{value:.{digits}f}'
        #print(f'{name!r}  {unit}  {base}  {delta}  {n} => {value}')
        poolstatus[name] = {'value': value, 'unit': unit}
    return(poolstatus)

if __name__ == '__main__':
    while True:
        status=GetPoolData(controller_host)
        print (status)
        time.sleep(5)   # delay between two request     
..und das kommt (bei mir) dabei raus:

Code: Alles auswählen

{'Filterdruck 1': {'value': '0.96197', 'unit': 'Bar'}, 'Filterdruck 2': {'value': '0.94068', 'unit': 'Bar'}, 'Freies Chlor': {'value': '1.020510', 'unit': 'ppm'}, 'CPU Temp': {'value': '41.033', 'unit': 'C'}, 'Redox': {'value': '659.06', 'unit': 'mV'}, 'pH': {'value': '7.438', 'unit': 'pH'}, 'Pool Temp': {'value': '14.57', 'unit': 'C'}, 'Air Temp': {'value': '14.19', 'unit': 'C'}, 'pH- Dispenser': {'value': 0, 'unit': 'auto'}, 'Cl Dispenser': {'value': 1, 'unit': 'auto'}, 'Flow Control': {'value': 1, 'unit': 'auto'}, 'Main Switch': {'value': 1, 'unit': 'auto'}, 'Flow Rate': {'value': '17.048', 'unit': 'cm/s'}, 'Cl Rest': {'value': '34.6', 'unit': '%'}, 'pH- Rest': {'value': '87.0', 'unit': '%'}, 'Cl consumption': {'value': '2931', 'unit': 'ml'}, 'pH- consumption': {'value': '672', 'unit': 'ml'}}
 

Alle Reaktionen


richard-os
Beiträge: 21
Registriert: 6. Januar 2015, 17:06

Re: Zugriff auf SD-Karte

Beitrag von richard-os »

Hallo, danke für Deine Mühe
Richard
 

Alle Reaktionen