Hallo agerhard ,
aktuell ist noch keine Neuauflage des IBBCape geplant. Eine neue Charge wird eher im 2. Quartal 2018 aufgelegt werden.
Könntest du mir evtl. die Email einfach noch mal schicken? Ich habe gerade admin@ing-budde.de von einem gmx-Account getestet und die Email kam auf Anhieb durch. Danke!
Viele Grüße und einen guten Start ins neue Jahr
Robert
Ankündigung
Einklappen
Keine Ankündigung bisher.
Beaglebone Cape mit KNX & 4x Onewire; Enocean, RTC, eHZ möglich
Einklappen
X
-
Hallo zusammen,
kurze Frage in die Runde: ist bekannt wann das IBBCape wieder verfügbar sein wird? Aktuell ist es lt. Shop nicht erhältlich.
@Robert: der Versuch dich über die Emailadresse aus dem Impressum zu erreichen schlug leider fehl, da nach 4 Tagen dieser Fehler zurückkam "delivery retry timeout exceeded". Versand an dich erfolgte über gmx.
Gruß,
agerhard
Einen Kommentar schreiben:
-
Zitat von Jürgen Beitrag anzeigenHallo Andreas,
klingt erst einmal logisch..
Wenn Du im originalen Browser auf 28.FF3C27001602 klickst, wird ein Link geöffnet. Angeblich gibt es ja für jeden Sensor eine eigene Datei, die dann im Browser angezeigt wird. Wenn du nun per alias den Namen auf "Keller" änderst, würde der Browser dann auch die Datei Keller suchen, es ist aber immer noch "28.FF3C27001602" - wo auch immer - vorhanden.
Hier müsste man dann einen Link von "Keller" auf 28.FF3C27001602 anlegen, damit die Anzeige im Browser wieder klappt.
Jetzt muss uns nur noch jemand erklären, wo das Homeverzeichnis des OW Webservers liegt und in welchem Verzeichnis wir somit die Sensoren finden.
Gruß Jürgen
ich habe das altbekannte Problem mit den Aliases wieder aufgegriffen, aber noch keine Lösung gefunden.
Ich glaube nicht, dass jeder Sensor eine eigene Seite bekommt, sondern die Seiten werden on the fly generiert, und zur Anzeige des Sensors dann einfach wieder die Parameter aus der URL ausgelesen. So hätte ich es zumindest gemacht.
Es stimmt allerdings, dass die Sensoren immer noch über die Sensor-ID über den Browser erreicht werden können, egal ob ein Alias vergeben ist oder nicht. Meine Idee wäre nun, den Quellcode von owhttpd so umzuschreiben, dass auch bei eingeschalteter Alias-Anzeige der Link trotzdem zur Sensor-ID verlinkt, Beispiel:
http://192.168.x.x:2121/28.FFFEE9601603 anstatt auf http://192.168.x.x:2121/TEMP_Keller_Technikraum
Da ich in C nicht so sehr bewandert bin, habe ich bisher allerdings nur mal etwas im Quellcode rumgeschnüffelt. Vielleicht komm ich ja noch drauf.
Gruß
- Likes 2
Einen Kommentar schreiben:
-
Zitat von Taxus Beitrag anzeigenGPIO-Pins zusätzlich abgreifen
Da ich mich etwas scheue, die Litzen direkt am Cape anzulöten - was ist der empfohlene Weg? Kennt jemand ein passendes "Zwischencape" oder eben geeignete Verbinderleisten mit Stift und Buchse nebst Abzweig? Ich kann bei diesem hier: http://www.exp-tech.de/beaglebone-prototyping-cape z.B. nicht erkennen, ob ich seitlich an die Pins komme.
Fuer stabiler hatte ich das im Auge:
http://www.exp-tech.de/adafruit-proto-cape-kit-fuer-beagle-bone-beagle-bone-black
http://www.exp-tech.de/stacking-head...one-capes-2x23
Einen Kommentar schreiben:
-
GPIO-Pins zusätzlich abgreifen
Ich möchte eine Anbindung (RFID-Leser), die bisher autark über einen RasPi erfolgt, mit vom BBB mit Roberts Cape erledigen lassen. Dafür benötige ich neben GND noch SDA und SCL, um den Leser mit ein paar Dioden und Widerständen anzubinden. SDA und SCL (P9-19 und P9-20) dürfen laut Roberts Spec ja (mit) benutzt werden.
Da ich mich etwas scheue, die Litzen direkt am Cape anzulöten - was ist der empfohlene Weg? Kennt jemand ein passendes "Zwischencape" oder eben geeignete Verbinderleisten mit Stift und Buchse nebst Abzweig? Ich kann bei diesem hier: http://www.exp-tech.de/beaglebone-prototyping-cape z.B. nicht erkennen, ob ich seitlich an die Pins komme.
Einen Kommentar schreiben:
-
Moin Hotzen,
Zitat von hotzen Beitrag anzeigenHey tullsta , kannst du noch deine smarthomeNG config posten? habe auch udos lesekopf aber latest smarthomeNG mit dlms rennt immer in timeout :/
=> alle Kommentare zur Verbesserung sind herzlich willkommen!
PHP-Code:import logging
import serial
import re
import binascii
# ==================================================
logger = logging.getLogger('iskra')
# ==================================================
class iskra():
def __init__(self, sh, cycle_time = 30):
self._sh = sh
self._cycleTime = cycle_time
self._codes = dict()
self._frameStartDelimiter = b'\x1b\x1b\x1b\x1b\x01\x01\x01\x01'
self._frameStopDelimiter = b'\x1b\x1b\x1b\x1b\x1a'
self._ser = serial.Serial(port='/dev/ttyS1',
timeout=0,
baudrate=9600,
stopbits=serial.STOPBITS_ONE)
def run(self):
self._sh.scheduler.add(
'iskra', self.update_status, cycle=self._cycleTime)
self.alive = True
def stop(self):
self.alive = False
# parse items, if item has parameter netio_port
# add item to local list
def parse_item(self, item):
if 'iskra_code' in item.conf:
self._codes[item.conf['iskra_code']] = item
return None
# ==================================================
def con2int8(self, val):
if val > 0x7f:
val -= 0x100
return val
def con2int16(self, val):
if val > 0x7fff:
val -= 0x10000
return val
def con2int32(self, val):
if val > 0x7fffffff:
val -= 0x100000000
return val
def con2int64(self, val):
if val > 0x7fffffffffffffff:
val -= 0x10000000000000000
return val
# ==================================================
def parse(self, data, i):
num=data[i]
if num == 0x52:
val = self.con2int8(int.from_bytes(data[i+1:i+2], byteorder='big'))
i+=2
elif num == 0x53:
val = self.con2int16(int.from_bytes(data[i+1:i+3], byteorder='big'))
i+=3
elif num == 0x55:
val = self.con2int32(int.from_bytes(data[i+1:i+5], byteorder='big'))
i+=5
elif num == 0x59:
val = self.con2int64(int.from_bytes(data[i+1:i+9], byteorder='big'))
i+=9
elif num == 0x62:
val = int.from_bytes(data[i+1:i+2], byteorder='big')
i+=2
elif num == 0x63:
val = int.from_bytes(data[i+1:i+3], byteorder='big')
i+=3
elif num == 0x65:
val = int.from_bytes(data[i+1:i+5], byteorder='big')
i+=5
elif num == 0x69:
val = int.from_bytes(data[i+1:i+9], byteorder='big')
i+=9
elif num == 0x01:
i+=1
val = 'kein Wert'
else:
print ('Error ')
print (data[i])
j=1
val=''
return (i, val)
# ==================================================
def update_status(self):
frameStartDelimiter = self._frameStartDelimiter
frameStopDelimiter = self._frameStopDelimiter
frameStartFound = False
frameStopFound = False
ser = self._ser
logger.debug("ser inWaiting() => " + str(ser.inWaiting()))
frameBuffer = b''
running = True
while running:
if ser.inWaiting() > 0:
frameBuffer += ser.read(ser.inWaiting())
if not frameStartFound:
if frameStartDelimiter in frameBuffer:
logger.debug("found start of frame")
frameStartFound = True
else:
if frameStopDelimiter in frameBuffer:
logger.debug("found end of frame")
frameStopFound = True
running = False
# find last occurrence of stop delimiter
stopIdx = frameBuffer.rfind(frameStopDelimiter)
frameBuffer = frameBuffer[:stopIdx]
# find last occurrence of start delimiter
startIdx = frameBuffer.rfind(frameStartDelimiter)
frameLength = stopIdx - startIdx - 8
logger.debug("startIdx = " + str(startIdx) + " => stopIdx = " + str(stopIdx))
lastFrame = frameBuffer[startIdx+8:]
logger.debug("extracted frame of length " + str(frameLength) + ".")
for code in self._codes.keys():
logger.debug("checking for code %s" % code)
r=re.compile('-|:|\.|\*')
idx = lastFrame.find(bytearray(map(int,r.split(code))))
if idx != -1:
logger.debug(" => updating code %s" % code)
logger.debug(" => found code %s" % code)
idx += 6
idx, status = self.parse (lastFrame, idx)
idx, iskra_time = self.parse (lastFrame, idx)
idx, unit = self.parse (lastFrame, idx)
idx, scaler = self.parse (lastFrame, idx)
idx, value = self.parse (lastFrame, idx)
idx, value_signature = self.parse (lastFrame, idx)
if unit == 0x1E:
scaler=scaler-3
value = round(value * 10**scaler, 3)
logger.debug(" => found value %6.6f" % value)
self._codes[code](value)
PHP-Code:[iskra]
class_name = iskra
class_path = plugins.iskra
cycle_time = 10
LG - tullsta
Einen Kommentar schreiben:
-
Dist-upgrade sollte funktionieren - zur Sicherheit einfach den eMMC bzw. die SD-Karte vorher clonen.
Einen Kommentar schreiben:
-
Zitat von tullsta Beitrag anzeigenbei mir laeuft der Kopf von Volkszaehler ohne Probleme.
Einen Kommentar schreiben:
-
Hallo Andreas,
klingt erst einmal logisch..
Wenn Du im originalen Browser auf 28.FF3C27001602 klickst, wird ein Link geöffnet. Angeblich gibt es ja für jeden Sensor eine eigene Datei, die dann im Browser angezeigt wird. Wenn du nun per alias den Namen auf "Keller" änderst, würde der Browser dann auch die Datei Keller suchen, es ist aber immer noch "28.FF3C27001602" - wo auch immer - vorhanden.
Hier müsste man dann einen Link von "Keller" auf 28.FF3C27001602 anlegen, damit die Anzeige im Browser wieder klappt.
Jetzt muss uns nur noch jemand erklären, wo das Homeverzeichnis des OW Webservers liegt und in welchem Verzeichnis wir somit die Sensoren finden.
Gruß Jürgen
Einen Kommentar schreiben:
-
Zitat von Jürgen Beitrag anzeigenHallo Andreas,
die Beschreibung klingt gut, allerdings komme ich da nicht mit:
Wenn ich die Anleitung richtig verstehe, gibt es ein owfs Verzeichnis, in dem die einzelnen Sensoren als Datei oder Unterveichnis vorhanden sind.
Ich finde zu meinen ID´s allerdings nichts:
sudo find / -name 28.FF3C27001602
sudo find / -name owfs bringt /usr/share/owfs, da steht aber nix...
Auch der Hinweis "(Note, I've added /opt/owfs/bin to my path for convenience)." bringt mich da nicht weiter...
Gruß Jürgen
ich habe es hinbekommen. Mein Denkfehler war, dass die owfs.conf auch den owhttpd konfiguriert, tatsächlich bezieht sich die owfs.conf allerdings nur auf den owserver. Man muss die Alias-Datei also dem owhttpd als Startparameter mitgeben. Mit SystemD funktioniert das so:
\etc\systemd\system\owhttpd.service öffnen
--alias=alias-file.txt anhängen
Beispiel bei mir:
Code:ExecStart=/usr/bin/owhttpd --foreground --server=127.0.0.1:4304 --port=2121 --alias=/opt/ow-alias
Manko: Bei mir tritt dann dieses alte Problem auf: https://knx-user-forum.de/forum/supp...1-owfs-aliases
Eine Lösung habe ich noch nicht gefunden. So kann ich zwar bequem neue Sensoren in Betriebnehmen, da sie unbenannt leicht von den benannten zu unterscheiden sind, die bereits bestehenden kann ich so aber nicht auslesen. Bei owhttpd kann man im Webinterface über "/settings/alias" die Aliase wieder ausschalten (Haken bei "unchanged"), sodass wieder alle auslesbar sind, das ist momentan aber etwas umständlich.
Gruß
Andreas
Einen Kommentar schreiben:
-
Hallo Juergen,
bei mir laeuft der Kopf von Volkszaehler ohne Probleme.
LG - tullsta
- Likes 1
Einen Kommentar schreiben:
-
Andere Baustelle; Stromzähler:
Hallo Robert,
im Heimautomation Buch wird dieser Lesekopf empfohlen: http://www.mysmartshop.de/co-met-mag...e-zaehler.html
Vom Stecker her basst er in das Cape, passen auch die Spezifikationen? Was müsste man denn nach dem Einstecken noch konfigurieren, um Stromwerte zu erhalten?
Gruß Jürgen
Einen Kommentar schreiben:
-
Hi Jürgen,
ich komme da mit meinem Verständnis auch nicht weiter.
Was mir noch aufgefallen ist: Wenn du in owhttpd den Pfad /settings/alias anwählst, dann erhältst du eben jene Alias-Liste, wie man sie selbst anlegen kann. Die scheint mir allerdings nur temporär zu existieren und mit jedem Neustart weg zu sein.
Gruß
Andreas
Einen Kommentar schreiben:
-
Hallo Andreas,
die Beschreibung klingt gut, allerdings komme ich da nicht mit:
Wenn ich die Anleitung richtig verstehe, gibt es ein owfs Verzeichnis, in dem die einzelnen Sensoren als Datei oder Unterveichnis vorhanden sind.
Ich finde zu meinen ID´s allerdings nichts:
sudo find / -name 28.FF3C27001602
sudo find / -name owfs bringt /usr/share/owfs, da steht aber nix...
Auch der Hinweis "(Note, I've added /opt/owfs/bin to my path for convenience)." bringt mich da nicht weiter...
Gruß Jürgen
Einen Kommentar schreiben:
Einen Kommentar schreiben: